2017-01-10 1 views
7

Ich versuche herauszufinden, wie man die Belichtung für meine Facetime HD Kamera im opencv Programm, das ich in Python schreibe, manuell einstellt. Ich verwende opencv Version 3.2.0, Python 2.7 und läuft auf OSX El Capitan.Wie man die Belichtung manuell auf eine Facetime HD Kamera in Python setzt Opencv 3.2.0 OSX El Capitan

Ich schreibe ein Programm, das alle n Sekunden ein Foto von der Webcam macht und es auf die Festplatte schreibt. Nach dem, was ich in der Dokumentation gesehen habe, möchte ich diese Methode verwenden, um die Belichtung auf meiner Kamera einzustellen.

cv2.VideoCapture.set(CV_CAP_PROP_EXPOSURE, value) → retval

Nach einigem Tüfteln und schaut sich um online, ich fand ich in der Lage war, diese Kamera Eigenschaft in meiner Version von opencv zuzugreifen mit dem folgenden:

cv2.CAP_PROP_EXPOSURE

Was seltsam ist, ist dass in meiner Funktion, die das Foto tatsächlich erfasst, ich sehe, dass der Standardbelichtungswert 0,0 ist, und wenn ich dann gehe, um es mit der eingestellten Methode zu ändern, hat sich die Belichtung nicht geändert, wenn ich den Wert erneut überprüfe. Es scheint, dass die set-Methode einfach nicht funktioniert.

Hier ist meine Funktion:

def takePhoto(): 
    cam = cv2.VideoCapture(0) 
    print(cam.get(cv2.CAP_PROP_EXPOSURE)) #this prints out 0.0 
    cam.set(cv2.CAP_PROP_EXPOSURE, 0.5) 
    print(cam.get(cv2.CAP_PROP_EXPOSURE)) #this also prints out 0.0, despite the use of set() in the line above 
    s, im = cam.read() # captures image 
    cv2.imwrite("test.jpg",im) # writes image test.jpg to disk 
    cam.release() 

Ist es nur der Fall, dass diese Kamera mit manueller Belichtungssteuerung nicht kompatibel ist? Ich habe auch an ein oder zwei Orten gelesen, dass opencv in OSX nicht erlaubt, Eigenschaften von Kameras manuell zu steuern. Ist das hier falsch? Oder verwende ich die set-Methode nicht richtig? Ich muss die Belichtung nur manuell steuern können, da die von meinem Programm aufgenommenen Fotos durchgehend unterbelichtet sind.

Danke, Brian

Antwort

0

Ich habe keine FacetimeHD Kamera, aber ich denke, Sie den Belichtungsmodus auf manuell gesetzt (automatische Belichtung deaktivieren)

mit

cam.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0)

Verwandte Themen