Frage zu "ret, frame = cap.read()"

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Tagedieb82
User
Beiträge: 2
Registriert: Donnerstag 20. Februar 2014, 20:31

Liebes Forum ich habe eine Möglichkeit gesucht meine Webcam anzusprechen und bin dabei auf das Tutorial von opencv gestoßen.

Dort findet sich das hier:

Code: Alles auswählen

import numpy as np
import cv2

cap = cv2.VideoCapture(0)

while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # Our operations on the frame come here
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

    # Display the resulting frame
    cv2.imshow('frame',gray)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

# When everything done, release the capture
cap.release()
cv2.destroyAllWindows()
Und ich frage mich warum man in Zeile 8 die Varable "ret" braucht ?
Wenn ich die rausnehme bekomme ich aber nur einen TypeError: <unknown> is not a numpy array

Habe leider doch googeln nix rausgefunden und da ich doch ziemlicher Anfänger bin, wollte ich hier nachfragen.

Vielen Dank und viele Grüße
Sirius3
User
Beiträge: 17768
Registriert: Sonntag 21. Oktober 2012, 17:20

@Tagedieb82: »cap.read« hat zwei Rückgabewerte, wenn Du jetzt einen davon wegläßt, kann das Programm natürlich nicht mehr funktionieren. Konvention ist übrigens, unbenutzte Rückgabewerte mit einem führenden _ zu kennzeichnen.
Benutzeravatar
diesch
User
Beiträge: 80
Registriert: Dienstag 14. April 2009, 13:36
Wohnort: Brandenburg a.d. Havel
Kontaktdaten:

cap.read() gibt ein Tupel mit zwei eelementen zurück.

Nach

Code: Alles auswählen

ret, frame = cap.read()
enthält ret das erste und frame das zweite Element.

Nach

Code: Alles auswählen

frame = cap.read()
enthält frame das ganze Tupel, und damit kann v2.cvtColor nichts anfangen.
http://www.florian-diesch.de
Tagedieb82
User
Beiträge: 2
Registriert: Donnerstag 20. Februar 2014, 20:31

Cool !
Vielen Dank für die Erklärungen.

Viele Grüße
Antworten