USB Webcam liefert Bilder mit Verzögerung - kaputt oder Verständnisfehler?

  • Hallo,

    (ich bin neu hier und steige direkt mit einer Frage ein, wenn mein Projekt irgendwann fertig werden sollte werde ich es gerne auch vorstellen und falls ich anderen helfen kann, tue ich das auch gerne - aktuell habe ich als Anfänger aber noch mehr Fragen als Antworten)


    Ich habe eine ältere creative Webcam über USB an den Raspberry Pi (B) angeschlossen und nutze python / cv2 um Fotos zu machen. Für meine Anwendung ist es wichtig, dass das Foto genau dann aufgenommen wird, wenn ich (virtuell) auf den Auslöseknopf drücke. Ich hatte mehrfach den Eindruck, dass das nicht der Fall ist und nun Fotos einer Digitaluhr mit Sekundenanzeige mit variablen Zeitabständen gemacht und mit dem aktuellen Zeitstempel abgespeichert.

    Code
    import cv2
    import time
    cap = cv2.VideoCapture(0)
    steps = [120,120,120,10,10,10,60,60,10,10,10,10,10,10,0]
    for n in range(len(steps)):
       t = time.strftime("%Y-%m-%d_%H-%M-%S")
       ret, frame = cap.read()
       cv2.imwrite('test_' + t + '.jpg',frame)
       time.sleep(steps[n])
    cap.release()

    Das Ergebnis:

    Auf dem ersten Bild stimmen Zeitstempel der jpg-Datei und Uhrzeit auf dem Foto überein. Dann wird vier mal der selbe Frame aus der Webcam ausgelesen und dann kommen die Bilder mit diesen vier Frames verzögerung, d.h. das sechste Foto zeigt den Zeitstempel des zweiten Fotos.

    Gehört das so?

  • USB Webcam liefert Bilder mit Verzögerung - kaputt oder Verständnisfehler?? Schau mal ob du hier fündig wirst!

  • Hallo,

    ganz sicher bin ich mir nicht aber ich denke es ist folgendes Problem.

    cv2.VideoCapture(0) nimmt das Bild aus dem Geräte-Buffer welcher am uC liegt, wenn du jetzt das Bild schneller im Programm verarbeitest als der Buffer aktuelle Daten von der Kamera bekommt, wirst du so lange das gleiche Bild öffnen.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!