我想刪除當前顯示由OpenCV製作的網絡攝像頭流的Tkinter標籤。我最終發生了這種情況,但不是以我想要的方式發生,因爲它只是停止流,但流輸出的最後一個圖像仍然存在。該代碼是這樣的:Tkinter標籤刪除的Python OpenCV輸出
from Tkinter import *
import cv2
from PIL import Image, ImageTk
def Start():
width, height = 800, 600
cap = cv2.VideoCapture(0)
cap.set(cv2.cv.CV_CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.cv.CV_CAP_PROP_FRAME_HEIGHT, height)
def show_frame():
_, frame = cap.read()
frame = cv2.flip(frame, 1)
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
img = Image.fromarray(cv2image)
imgtk = ImageTk.PhotoImage(image=img)
lmain.imgtk = imgtk
lmain.configure(image=imgtk)
lmain.after(10, show_frame)
show_frame()
root = Tk()
lmain = Label(root)
lmain.pack(side = RIGHT)
Button1 = Button(root, text = "Start", command = Start)
Button1.pack(side = LEFT)
Button2 = Button(root, text = "Stop", command = Start)
Button2.pack(side = LEFT)
root.mainloop()
您可能注意到,我用來停止它是我用來啓動功能相同的功能,那就是因爲我就如何阻止它很無能。
我已經嘗試了代碼,你修飾它,我做了一個小的調整它,因爲它的一部分,你可以刪除標籤,但它並沒有關閉網絡攝像頭我也是這麼做的,所以你可以再次按下「開始」,它仍然可以工作。無論如何,我感謝你的幫助,因爲我用它作爲基礎。 該代碼在我的回答問題帖子中。 –