在视频输入库或OpenCV中禁用自动聚焦

Sal*_*leh 10 opencv image-processing computer-vision

我正在使用视频输入库从网络摄像头获取帧.我想用C代码设置这台相机的FOCUS.

相机启用了AUTO FOCUS.没有办法禁用自动对焦并设置特定的焦点值.

此致,Saleh ......

小智 11

如果您使用OpenCV 3.1.0-dev版本和Python 2.7.5,以下代码剪切应该可以帮助您;)

cap = cv2.VideoCapture(1) # my webcam
cap.set(3, 1280) # set the resolution
cap.set(4, 720)
cap.set(cv2.CAP_PROP_AUTOFOCUS, 0) # turn the autofocus off
Run Code Online (Sandbox Code Playgroud)

使用我的Logitech HD Pro网络摄像头C920工作正常.cv2中还有许多其他很酷的控制功能,比如cv2.CAP_PROP_BRITHNESS或cv2.CAP_PROP_CONTRAST.看看自动完成向您展示的内容;)


jil*_*wit 5

你试过这个:https://stackoverflow.com/a/1718009/7531它要求你使用directshow,但这应该是可能的.

否则,你看过CameraCapture的OpenCV文档吗?有关摄像机参数的部分显示了 - 通常 - 您控制摄像机参数,快速查看videoinput.h应显示自动对焦的参数. 这是以这种方式设置自动对焦的完整示例.

IAMCameraControl 是用于控制参数的Windows界面.

请注意,根据您使用的网络摄像头和/或特定固件版本,可能无法完全控制对焦/自动对焦.