Я генерирую фрактальные изображения, в частности кривые Коха, используя черепаху в Python. Я намерен вычислить лакунарность изображения, для которого мне нужно это изображение в виде двумерной двоичной матрицы.
Как мне преобразовать этот вывод черепахи в двумерную двоичную матрицу из 0 и 1, которую я могу использовать для дальнейших вычислений?
Это не все, что вы хотите, но это должно дать вам хорошее начало.
Сценарий ниже создает небольшое приложение tkinter
с двумя кнопками, Draw и Save. Первый использует графику черепахи, чтобы нарисовать простую графику. Другие кнопки сохраняют то, что в данный момент находится на экране, в файл изображения в цветном формате .png
.
Обратите внимание, что это только очень минимальный пример приложения, которое я специально создал для демонстрационных целей, так что, пожалуйста, не пренебрегайте им. ;¬)
Вот скриншот этого после нажатия кнопки Draw:
И вот mousescreen.png
изображения mousescreen.png
созданный нажатием на кнопку Save, был нажат:
Так как это не тот формат изображения, который, как вы говорите, вы хотите, вам нужно изменить скрипт для преобразования данных изображения, которые save_file()
получает из функции getter()
(которую я украл из этого ответа). Вы можете сделать это, используя модуль PIL (Python Image Library). Это хорошо документировано, и вот некоторые инструкции по установке и/или вы можете скачать его с pypi.
from PIL import ImageGrab
import tkinter as tk
import turtle
width, height =500, 500
image_filename = 'mousescreen.png'
def draw_stuff():
t = turtle.RawTurtle(canvas)
t.pencolor('#ff0000') # Red
# Draw stuff.
for i in range(5):
t.forward(200)
t.right(144)
t.hideturtle() # Hide for screenshot.
def getter(widget):
x = root.winfo_rootx() + widget.winfo_x()
y = root.winfo_rooty() + widget.winfo_y()
x1 = x + widget.winfo_width()
y1 = y + widget.winfo_height()
return ImageGrab.grab().crop((x, y, x1, y1))
def save_file():
img = getter(canvas)
img.save(image_filename)
root = tk.Tk()
canvas = tk.Canvas(root, width=width, height=height)
canvas.pack()
btn1 = tk.Button(root, text='Draw', command=draw_stuff)
btn1.pack(side=tk.LEFT)
btn2 = tk.Button(root, text='Save', command=save_file)
btn2.pack(side=tk.LEFT)
root.mainloop()
Счастливых праздников.