我跟OpenCV的和Python Tkinter的工作。 我想要得到的OpenCV視頻幀Tkinter的拉布勒。 我已經使用了Threading,因爲我有兩個循環。 (我得到了指示,從this)類圖像上有沒有屬性「fromarray」
當我試圖運行的代碼它顯示了我,
Press any key to continue . . . Exception in thread Thread-2:Traceback (mostrecent call last):File "C:\Python27\lib\threading.py", line 808, in __bootstrap_inner self.run() File "C:\Python27\lib\threading.py", line 761, in run self.__target(*self.__args, **self.__kwargs)File "c:\users\user1\documents\visual studio 2013\Projects\defTstWindow\defT stWindow\defTstWindow.py", line 26, in makeGUI img = Image.fromarray(cv2image) AttributeError: class Image has no attribute 'fromarray'
我alredy嘗試使用Python classes.I得到了同樣的錯誤。
但是,如果我在一個功能運行的所有物件(如this 1日回答),它的正常工作。
什麼是我的代碼的問題嗎?
現在我有四個Python模塊。
1.Support.py
import cv2
global frame
frame=None
2.CamHandler.py
import cv2
import numpy as np
import Support
cam=cv2.VideoCapture(0)
def getFrame():
while 1:
_,frm=cam.read()
#cv2.imshow('frm',frm)
Support.frame=frm
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
3.defTstWindow.py
import sys
import cv2
import Image, ImageTk
from Tkinter import *
import Support
def makeGUI():
top=Tk()
top.geometry("600x449+650+151")
top.title("Test Window")
top.configure(background="#d9d9d9")
lblFrame = Label(top)
lblFrame.place(relx=0.03, rely=0.04, height=411, width=544)
lblFrame.configure(background="#d9d9d9")
lblFrame.configure(disabledforeground="#a3a3a3")
lblFrame.configure(foreground="#000000")
lblFrame.configure(text='''Label''')
lblFrame.configure(width=544)
cv2image = cv2.cvtColor(Support.frame, cv2.COLOR_BGR2RGBA)
img = Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
lblFrame.imgtk = imgtk
lblFrame.configure(image=imgtk)
#lblFrame.after(10, show_frame)
top.mainloop()
4.main.py
import CamHandler
import defTstWindow
import threading
import time
threading.Thread(target=CamHandler.getFrame).start()
time.sleep(1)
threading.Thread(target=defTstWindow.makeGUI).start()
Thanks..I取代'從Tkinter的進口所有來自'Tkinter的進口TK,標籤 ' 但,它從我的相機只有一幀。原因是什麼? 它無法運行while循環嗎? – user119o
你應該爲這個問題開始一個新的問題。 –
是...關於Tkinter的拉布勒更新問題上的...我會盡力解決it.Thanks。 – user119o