在Tkinter中有效地显示OpenCV IplImage

时间:2011-10-28 14:47:08

标签: python opencv tkinter

我有一个应用程序可以在显示循环中将OpenCV的IplImages转换为Tkinter个图像。当然,我想这样做是提高应用程序响应能力的最有效方法。

以下是我目前的做法(frameIplImage):

    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。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我找不到更好的方法,所以我重构了我的应用程序以使用highgui来显示OpenCV图像。它迫使我使用额外的窗口和额外的线程(一个用于应用程序小部件的Tkinter GUI,一个用于highgui),但至少这样应用程序响应更快。