当前位置:  开发笔记 > 编程语言 > 正文

如何在Python opencv 3.2.0 OSX El Capitan中手动设置Facetime HD摄像头的曝光

如何解决《如何在Pythonopencv3.2.0OSXElCapitan中手动设置FacetimeHD摄像头的曝光》经验,为你挑选了0个好方法。

我试图弄清楚如何在opencv我用Python编写的程序中为我的Facetime HD摄像头手动设置曝光.我使用的是opencv3.2.0版,python 2.7,并在OSX El Capitan上运行.

我正在编写一个程序,每隔n秒从网络摄像头拍摄一张照片并将其写入磁盘.根据我在文档中看到的内容,我想使用此方法在相机上设置曝光.

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

经过一些修补和在线浏览后,我发现我能够在我的版本中opencv使用以下内容访问该相机属性:

cv2.CAP_PROP_EXPOSURE

奇怪的是,在我实际捕获照片的函数中,我可以看到默认曝光值为0.0,然后当我用set方法更改它时,当我检查值时曝光没有改变再次.似乎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()

是否只是这台相机与手动曝光控制不兼容?我还在一两个地方读过,opencvOSX中不允许手动控制摄像机的属性.这有什么不对吗?或者我使用set方法不正确?我真的需要能够手动控制曝光,因为我的程序拍摄的照片一直曝光不足.

谢谢,Brian

推荐阅读
ar_wen2402851455
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有