Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image processing 在视频输入库或OpenCV中禁用自动对焦_Image Processing_Opencv_Computer Vision - Fatal编程技术网

Image processing 在视频输入库或OpenCV中禁用自动对焦

Image processing 在视频输入库或OpenCV中禁用自动对焦,image-processing,opencv,computer-vision,Image Processing,Opencv,Computer Vision,我正在使用视频输入库从网络摄像头获取帧。我想用C代码设置这个相机的焦距 相机已启用自动对焦功能。没有办法禁用自动对焦并设置特定的对焦值吗 问候,, 萨利赫 您是否尝试过:它要求您使用directshow,但这应该是可能的 否则,你看了吗。关于摄像机参数的部分显示了——通常——如何控制摄像机参数,videoinput.h中的快速查看应该会显示自动对焦的参数。 这样设置自动对焦的方法 是用于控制参数的windows界面 请注意,根据您使用的网络摄像头和/或特定固件版本,可能根本无法控制聚焦/自动聚焦

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

相机已启用自动对焦功能。没有办法禁用自动对焦并设置特定的对焦值吗

问候,, 萨利赫

您是否尝试过:它要求您使用directshow,但这应该是可能的

否则,你看了吗。关于摄像机参数的部分显示了——通常——如何控制摄像机参数,
videoinput.h
中的快速查看应该会显示自动对焦的参数。 这样设置自动对焦的方法

是用于控制参数的windows界面


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

我已经搜索了好几天这个问题,并尝试了videoinput library和directshow。 如果您只想在opencv内(手动)设置一次摄影机参数,我找到的最简单的方法是:

VideoCapture cap(0);
cap.set(CV_CAP_PROP_SETTINGS, 1);
它将弹出一个窗口供您设置参数。足以禁用自动对焦


这种方法的不便之处在于,如果您想通过程序控制焦距,它就无法做到这一点

您正在寻找的功能是特定于摄像头和驱动程序的。仅提供非常基本的参数。
没有通用的方法通过OpenCV进行调用

要执行此操作,而不是通过OpenCV,可以执行以下操作之一:

  • 手动访问驱动程序的捕获属性为:
    cap.set(CV\u cap\u PROP\u设置,1)
  • 通过操作系统/特定于驱动程序的API编程

如果您使用OpenCV 3.1.0-dev版本和Python 2.7.5,以下截取的代码应该会对您有所帮助;)

使用我的Logitech HD Pro网络摄像头,C920工作正常。cv2内部还有许多其他冷却控制功能,如
cv2.CAP_PROP_britness
cv2.CAP_PROP_CONTRAST

查看自动完成向您显示的内容;)

我知道我可以使用以下代码在视频输入库中设置焦点;setVideoSettingCamera(int deviceID、long属性、long左值、long标志=NULL、bool useDefaultValue=false);但它不起作用。答案可能取决于平台。您正在使用什么操作系统/硬件?windows。。。你可以考虑任何这些:7 64/32或Windows XP 32…哦,是的。我可以使用VideoInput库中的鼠标光标通过设置窗口禁用它。这意味着摄像头驱动程序支持启用或禁用自动对焦。但问题是它不能通过编码配置。您提到了OpenCV的摄像头捕获实现。在此实现中,没有任何属性(焦距、缩放、亮度等)起作用:(@saleh-你是如何解决问题的?@saleh,请说明你是如何解决问题的。谢谢
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