首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何以编程方式禁用网络摄像头的自动对焦?

如何以编程方式禁用网络摄像头的自动对焦?
EN

Stack Overflow用户
提问于 2009-11-12 04:16:09
回答 3查看 20.2K关注 0票数 12

我正在尝试使用网络摄像头进行计算机视觉(模型是Hercules Dualpix)。我知道这不是理想的相机,但我别无选择。

问题是自动对焦使得校准相机变得困难/不可能。任何人都知道禁用自动对焦功能的方法。或者,如果有人有一个想法来处理它,并校准相机与自动对焦。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-12 04:56:25

大力神相机是符合紫外线标准的,因此它们应该与DirectShow接口IAMCameraControl一起工作。您可以将焦点设置为特定值,并使用标志将其设置为不希望它自动。您可以使用IAMCameraControl::Get来轮询当前状态,因为并非所有相机都支持关闭焦点。

代码语言:javascript
运行
复制
IAMCameraControl *pCameraControl; 
HRESULT hr; 
hr = pFilter->QueryInterface(IID_IAMCameraControl, (void **)&pCameraControl); 
if (hr == S_OK) {
  long defaultFocusValue;
  hr = pCameraControl->GetRange(CameraControl_Focus,
                                NULL, // min
                                NULL, // max
                                NULL, // minstep
                                &defaultFocusValue, // default
                                NULL); // capflags
  hr = pCameraControl->Set(CameraControl_Focus, // property
                           defaultFocusValue, // value
                           CameraControl_Flags_Manual); 
} 

Focus有一个由每个摄像头单独定义的范围,所以你应该按照图中所示进行查询,以找到默认值和最小值、最大值。在本例中,pFilter是指向您从DirectShow获得的输入过滤器的指针。你可以通过enumerating the devices获得它,然后找到你想要的。

票数 11
EN

Stack Overflow用户

发布于 2012-03-20 04:12:52

尝试使用uvcdynctrl,其中-l标志将列出功能,-s可用于设置任何功能http://manpages.ubuntu.com/manpages/natty/man1/uvcdynctrl.1.html

票数 2
EN

Stack Overflow用户

发布于 2016-07-15 02:25:21

、OpenCV、和Python的帮助下,你可以很容易地做到这一点:

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

我用的是OpenCV 3.1.0-dev,Python2.7.5和罗技HD Pro网络摄像头C920

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1717780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档