Manchmal möchte man nicht nur ein einzelnes Bild von der Festplatte laden um es zu bearbeiten sondern einen ganzen Videostream beobachten um zum Beispiel auf ein bestimmtes Ereignis zu warten. Dieser Videostream kann als Datei oder als Webcam vorliegen. Das ganze funktioniert mit folgenden Zeilen:

import cv2

cap = cv2.VideoCapture(0)
while(cap.isOpened()):
  ret, frame = cap.read()
  if ret==True:
    k = cv2.waitKey(1)
    cv2.imshow('Bild',frame)

Zeile 3 öffnet mit der VideoCapture() Funktion eine Verbindung zur Kamera. Diese Verbindung wird als VideoCapture Objekt zurückgegeben. Wenn man eine Zahl als Parameter gibt wird die Kamera mit der internen ID dieser Zahl als Bildquelle genutzt. Alternativ kann mit einem Pfad in Stringform auch eine Videodatei abgespielt werden.

Als nächstes lassen wir eine while Schleife so lange laufen wie uns unser VideoCapture Objekt noch Bilder liefert. cap.read() gibt uns bei Erfolg ein True Flag sowie das Bild als Numpy Array.


Konnte ich helfen? Ich freue mich über einen Drink! 💙