簡體   English   中英

視頻流未顯示在Tkinter屏幕上

[英]Video stream not displayed on Tkinter screen

screen_tkinter

我創建了一個類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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM