つまり、 ImageTk.PhotoImage オブジェクトを Image (PIL) オブジェクトまたは numpy 配列に変換したいと思います。numpy.asarray() を使用して Image (PIL) オブジェクトを numpy 配列に変換できることを知っている。numpy 配列が与えられ、Tkinter で次のように表示できます。
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 配列または「イメージ」のピクセル値を出力しようとしています)。ImageTkを使用せずにTkinterでnumpy配列またはImage(PIL)オブジェクトを表示することもできるかもしれませんが、それに対する答えも見つからないようです。任意の提案をいただければ幸いです。ありがとう!