2017-01-10 58 views
7

私がPythonで書いているopencvプログラムで私のFacetime HDカメラの露出を手動で設定する方法を解明しようとしています。私はopencvバージョン3.2.0、Python 2.7、そしてOSX El Capitan上で動作しています。Python opencv 3.2.0でFacetime HDカメラの露出を手動で設定する方法OSX El Capitan

私はウェブカメラから写真をn秒ごとに撮影してディスクに書き込むプログラムを作成しています。私がドキュメンテーションで見たことから、私はカメラで露出を設定するためにこのメソッドを使いたいと思っています。

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

いくつか工夫した後、オンライン周りを探し、私は、以下のものを使用してopencvの私のバージョンでは、カメラのプロパティにアクセスすることができたが見つかりました:、奇妙である何

cv2.CAP_PROP_EXPOSURE

です実際に写真を撮っている私の機能では、デフォルトの露出値が0.0であることがわかりました。その後、設定方法で変更すると、再度値をチェックしても露出は変わりません。 setメソッドは単に動作していないように見えます。ここで

は私の関数である。

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() 

が、このカメラはマニュアル露出制御と互換性がないことを念のですか?私はまた、OSXのopencvは、カメラのプロパティを手動で制御することを許可していない1つまたは2つの場所で読んだ。それはここで間違っていますか?あるいは、私は設定方法を不適切に使用していますか?自分のプログラムで撮った写真が一貫して露出不足になっているので、露出を手動で制御できるようにする必要があります。

おかげで、 ブライアン

答えて

0

私はFacetimeHDカメラを持っていないが、私はあなたが使用して(自動露出を無効にする)、マニュアルへの露出モードを設定する必要があると思います

cam.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0)

関連する問題