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