在Linux中禁用网络摄像头的自动对焦

时间:2013-05-01 14:13:39

标签: python linux opencv

我正在使用beagleboard中的embebed系统。源代码是用Python编写的,但是我从OpenCV导入库来进行图像处理。实际上,我正在使用网络摄像头Logitech c910,它是一款出色的相机,但它具有自动对焦功能。我想知道我是否可以从Python或Linux中的任何程序禁用自动对焦?

2 个答案:

答案 0 :(得分:21)

使用shell中的程序v4l2-ctl来控制网络摄像头上的硬件设置。要关闭自动对焦,请执行以下操作:

v4l2-ctl -c focus_auto=0

您可以列出所有可能的控件:

v4l2-ctl -l

命令默认为您的第一个Video4Linux设备,即/dev/video0。如果您插入了多个网络摄像头,请使用-d开关选择目标设备。


安装v4l-utils

安装该实用程序的最简单方法是使用您的包管理器,例如在Ubuntu或其他基于Debian的系统上尝试:

apt-get install v4l-utils

或在Fedora,CentOS和其他基于RPM的发行版上使用:

yum install v4l-utils

答案 1 :(得分:1)

您也可以在Linux中使用以下方法做到这一点:

cap = cv2.VideoCapture(0) cap.set(cv.CAP_PROP_AUTOFOCUS, 0)

对于某些人来说,这在Windows中不起作用(请参见Disable webcam's autofocus in Windows using opencv-python)。在我的系统中确实如此(ubuntu 14.04,V4L 2.0.2,opencv 3.4.3,logitech c922)。