2011-10-28 26 views
1

我有一個應用程序可以在顯示循環中將OpenCV的IplImages轉換爲Tkinter圖像。當然,我想這樣做是提高應用程序響應速度的最有效方式。在Tkinter中有效地顯示OpenCV IplImage

這裏是我當前如何做(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傳統知識。有沒有更好的辦法?

回答

1

我找不到更好的方法來做到這一點,所以我重構我的應用程序使用highgui來顯示OpenCV圖像。它迫使我使用額外的窗口和額外的線程(一個用於應用程序小部件的Tkinter GUI,另一個用於highgui),但至少這樣應用程序的響應速度更快。