我有一个应用程序可以在显示循环中将OpenCV的IplImages
转换为Tkinter
个图像。当然,我想这样做是提高应用程序响应能力的最有效方法。
以下是我目前的做法(frame
是IplImage
):
pil_image = PIL.Image.fromstring(
'RGB',
cv.GetSize(frame),
frame.tostring(),
'raw',
'BGR',
frame.width*3,
0)
tk_image = ImageTk.PhotoImage(pil_image)
因此,它将整个OpenCV图像转换为字符串,通过PIL提供,然后从PIL转换为TK。还有更好的方法吗?
答案 0 :(得分:1)
我找不到更好的方法,所以我重构了我的应用程序以使用highgui
来显示OpenCV图像。它迫使我使用额外的窗口和额外的线程(一个用于应用程序小部件的Tkinter GUI,一个用于highgui),但至少这样应用程序响应更快。