[英]Video stream not displayed on Tkinter screen
我創建了一個類Tela,它基本上是我的屏幕,我正在嘗試在Tkinter GUI上顯示網絡攝像頭視頻。 我的網絡攝像頭LED已開啟,但我想要的標簽“painel”顯示我的視頻是灰色的。 有人能告訴我我的代碼有什么問題。 我很感激。
class Tela:
def __init__(self, janela):
self.janela = janela
self.janela.title("Reconhecimento Facial")
self.janela.config(background="#FFFFFF")
# Open camera
self.cam = cv2.VideoCapture(0)
self.detector = dlib.get_frontal_face_detector()
self.quadro = tkinter.Frame(janela, width=600, height=500)
self.quadro.grid(row=0, column=0, padx=10, pady=2, rowspan=3)
self.painel = tkinter.Label(self.quadro)
self.quadro.grid(row=0, column=0, rowspan=3)
# Methods for screen update
self.delay = 15
self.update()
self.janela.mainloop()
def update(self):
# Get frame
ret, frame = self.cam.read()
faces, confianca, idx = self.detector.run(frame)
for i, face in enumerate(faces):
e, t, d, b = (int(face.left()), int(face.top()), int(face.right()), int(face.bottom()))
cv2.rectangle(frame, (e, t), (d, b), (0, 255, 255), 2)
cv2image = cv2.cvtColor(self.frame, cv2.COLOR_BGR2RGBA)
image = Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=image)
self.painel.imgtk = imgtk
self.painel.configure(image=imgtk)
self.janela.after(self.delay, self.update)
# Creates the window
Tela(tkinter.Tk())
錯誤在第二行
self.painel = tkinter.Label(self.quadro)
self.quadro.grid(row=0, column=0, rowspan=3)
你創建了Label
但你沒有把它放在窗口中 - 它必須是self.painel.grid
而不是self.quadro.grid
self.painel = tkinter.Label(self.quadro)
self.painel.grid(row=0, column=0, rowspan=3)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.