Я создал графический интерфейс, в котором я могу загрузить изображение с диска и преобразовать движение мыши (рисование контуров) в координаты. Теперь мне нужно преобразовать координаты в двоичное изображение, и я не знаю, как это сделать. Вот мой код:преобразовать координаты в двоичное изображение python
from Tkinter import *
from tkFileDialog import askopenfilename
from PIL import Image, ImageTk
import numpy as np
import cv2
class Browse_image :
def __init__ (self,master) :
frame = Frame(master)
frame.grid(sticky=W+E+N+S)
self.browse = Button(frame, text="Browse", command = lambda: browseim(self))
self.browse.grid(row=13, columnspan=1)
self.photo = PhotoImage(file="browse.png")
self.label = Label(frame, image=self.photo)
self.label.grid(row=1,rowspan=10)
self.label.bind('<B1-Motion>', self.mouseevent)
def mouseevent(self,event):
w=self.photo.width()
h=self.photo.height()
a = np.zeros(shape=(h,w))
#print event.x, event.y
a[event.x,event.y]=1
plt.imsave ('binary.png', а, CMAP = cm.gray)
def browseim(self):
path = askopenfilename(filetypes=(("png files","*.png"),("jpeg files",
"*.jpeg")))
if path:
img = Image.open(path)
self.photo = ImageTk.PhotoImage(img)
self.label.configure(image = self.photo)
#self.label.image = self.photo
root= Tk()
b= Browse_image(root)
root.mainloop()
`
Какое поведение этой программы отличается от того, что вы ожидаете? Похоже, вы отслеживаете движения мыши через привязку. Почему это не работает для вас? Что означает «Преобразование координат в двоичное изображение»? –
Мне нужно преобразовать координаты в двоичную матрицу как двоичное изображение (1 0 1 1 0 0 0), так что для каждой заданной точки она помещает 1 в матрицу, 0 для остальных. –
зачем вам это нужно? что вы сделаете позже с этими координатами? если нет, то сохраните его в двухмерном массиве numpy: 'matrix = np.zeros ((height, width))' и позже 'matrix [y] [x] = 1' – furas