Schönen Guten Abend zusammen,
Ich bin neu in eurem Forum, konnte aber schon einige tolle Beiträge für meine Raspberry Pi Projekte Anwenden Leider komme ich bei meinem jetzigen Projekt nicht weiter und konnte auch nirgends eine passende Lösung finden.
Über eine Webcam soll ein Videostream auf einer GUI angezeigt werden. Nach 10 Sekunden soll sich der Stream beenden und das Videofenster schließen.
Mit dem folgenden Code bekomme ich per Button den Stream angezeigt, nur bekomme ich die zeitliche Abschaltung nicht hin.. Gibt es bei Opencv einen eigenen Befehl dafür?
Dass man mit cap.release() und cv2.destroyAllWindows() den stream beenden und das Fenster schließen kann habe ich schon raus..
Für jeden Kommentar und Hilfe bin ich sehr Dankbar!!
Python
#!usr/bin/python3
from tkinter import*
import time
import cv2
from PIL import Image, ImageTk
cap = cv2.VideoCapture(-1)
def KameraAn():
retval, frame = cap.read()
cv2image = cv2.cvtColor(frame, cv2.COLOR_BGR2RGBA)
stream = Image.fromarray(cv2image).resize((330,280))
streamtk = ImageTk.PhotoImage(image = stream)
labelkamera.streamtk = streamtk
labelkamera.configure(image=streamtk)
labelkamera.after(1, KameraAn)
fenster =Tk()
fenster.wm_title('Alarmsystem')
fenster.geometry("800x800")
fenster.configure(bg='white')
buttonAn =Button(fenster, bg='dim gray', text= 'Kamera an', command = KameraAn)
buttonAn.place(x=580, y= 103, width= 90, height = 80)
buttonAus =Button(fenster, bg='dim gray', text='Kamera aus')
buttonAus.place(x=690, y= 103, width= 90, height = 80)
labelkamera =Label(fenster, text='Kamerabild', bg='dim gray')
labelkamera.place(x=230, y= 103, width = 330, height = 280)
fenster.mainloop()
Alles anzeigen