将坐标转换为二进制图像python

时间:2016-10-12 18:43:40

标签: python tkinter

我做了一个GUI,我可以在其中加载磁盘中的图像并将鼠标移动(绘制轮廓)转换为坐标。现在我需要将坐标转换为二进制图像,我不知道如何。 这是我的代码:

result = py.module_name.function_name(parameter1);

plt.imsave(' binary.png',a,cmap = cm.gray)

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

`

1 个答案:

答案 0 :(得分:0)

您的问题是您在每个鼠标事件中使用mouseevent中的行a = np.zeros(shape=(h,w))创建一个新的空数组。要解决这个问题,您应该在a中声明__init__作为属性(即self.a = np.zeros(shape=(h,w))),以便您可以访问和更新它,而不会在mouseevent函数中覆盖它。