Seite 1 von 1

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

Verfasst: Donnerstag 20. Februar 2014, 20:44
von Tagedieb82
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

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

Verfasst: Donnerstag 20. Februar 2014, 20:54
von Sirius3
@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.

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

Verfasst: Donnerstag 20. Februar 2014, 20:59
von diesch
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.

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

Verfasst: Donnerstag 20. Februar 2014, 21:05
von Tagedieb82
Cool !
Vielen Dank für die Erklärungen.

Viele Grüße