python - 用OpenCV读取一个图像并用Tkinter显示它

我在Ubuntu 14.04上有一个非常简单的程序,可以使用OpenCV来读取和显示图像:


import cv2 #import OpenCV

img = cv2.imread('picture.jpg') #read a picture using OpenCV
cv2.imshow('image',img) # Display the picture
cv2.waitKey(0) # wait for closing
cv2.destroyAllWindows() # Ok, destroy the window

我的问题是

如何在OpenCV中读这个图片,但使用Tkinter显示它?

必须在后台使用OpenCV处理所有的图像,只有显示结果必须使用Tkinter完成。


im = Image.open('slice001.hrs').convert2byte()

到:


im=cv2.imread() # (I imported cv2) 

但我有一个错误。

时间:

你可能想看看这个 ,这对我有用:


import numpy as np
import cv2
import Tkinter 
import Image, ImageTk

# Load an color image
img = cv2.imread('img.png')

#Rearrang the color channel
b,g,r = cv2.split(img)
img = cv2.merge((r,g,b))

# A root window for displaying objects
root = Tkinter.Tk() 

# Convert the Image object into a TkPhoto object
im = Image.fromarray(img)
imgtk = ImageTk.PhotoImage(image=im) 

# Put it in the display window
Tkinter.Label(root, image=imgtk).pack() 

root.mainloop() # Start the GUI

...