我想弄清楚如何在我用Python編寫的opencv
程序中爲我的Facetime高清攝像機手動設置曝光。我正在使用opencv
版本3.2.0,python 2.7,並在OSX El Capitan上運行。如何在Python opencv 3.2.0上手動設置Facetime高清攝像機的曝光度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
不允許手動控制攝像機的屬性。這是什麼問題?還是我不恰當地使用set方法?我真的需要能夠手動控制曝光,因爲我的程序拍攝的照片始終曝光不足。
感謝, 布賴恩