Ich habe eine GUI, in der ich ein Bild von der Festplatte laden und konvertieren die Mausbewegung (Zeichnen der Konturen) in Koordinaten. Jetzt muss ich die Koordinaten in ein Binärbild umwandeln und ich weiß nicht wie. Hier ist mein Code:Konvertieren von Koordinaten in Binärbild 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', a, 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()
`
Wie unterscheidet sich das Verhalten dieses Programms von dem, was Sie erwarten? Es sieht so aus, als würden Sie Mausbewegungen über die Bindung verfolgen. Warum funktioniert das nicht für dich? Was bedeutet "Konvertiere die Koordinaten in ein Binärbild"? –
Ich muss die Koordinaten in eine binäre Matrix als ein binäres Bild (1 0 1 1 0 0 0) umwandeln, so dass für jeden gegebenen Punkt eine 1 in die Matrix gesetzt wird, 0 für den Rest. –
Warum brauchen Sie es? Was wirst du später mit diesen Koordinaten machen? wenn nichts, dann behalten Sie es in 2-dimensionalen numpy array: 'matrix = np.zeros ((height, width))' und später 'matrix [y] [x] = 1' – furas