总之,我想将ImageTk.PhotoImage对象转换为Image(PIL)对象或numpy数组。知道你可以使用numpy.asarray()将Image(PIL)对象转换为numpy数组。我给一个numpy的阵列,可以在Tkinter的喜欢它显示:Tkinter图像显示(带有[转换] NumPy数组)
from Tkinter import *
import numpy as np
import Image, ImageTk
def callback(event):
# do some stuff with a numpy array
# ideally, e.g.:
x=event.x; y=event.y
val=np.asarray(imgTk)[x,y]
print val
arr=np.ones([256,256])
img=Image.fromarray(arr)
imgTk=ImageTk.PhotoImage(img)
t=Tk()
l=Label(t)
l.configure(image=imgTk)
l.bind('<Motion>', callback)
l.pack()
t.mainloop()
但部分
np.asarray(imgTk)
不返回[256,256]数组喜欢我的预期。可能有一个更简单的方法来解决这个问题(正如你所看到的,我试图打印出2D numpy数组的像素值,或者当我将光标移动到它上面时,“图像”)。也许我甚至可以在Tkinter中使用ImageTk显示一个numpy数组或图像(PIL)对象,但我似乎无法找到答案。任何建议感激。谢谢!
那你知道该怎么做相反?至于如何将numpy数组图像转换为Tk图像,以便我可以使用Tkinter显示它? – 2014-02-25 06:06:42