我正在尝试使用网络摄像头进行计算机视觉(模型是Hercules Dualpix)。我知道这不是理想的相机,但我别无选择。
问题是自动对焦使得校准相机变得困难/不可能。任何人都知道禁用自动对焦功能的方法。或者,如果有人有一个想法来处理它,并校准相机与自动对焦。
发布于 2009-11-12 04:56:25
大力神相机是符合紫外线标准的,因此它们应该与DirectShow接口IAMCameraControl一起工作。您可以将焦点设置为特定值,并使用标志将其设置为不希望它自动。您可以使用IAMCameraControl::Get来轮询当前状态,因为并非所有相机都支持关闭焦点。
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获得它,然后找到你想要的。
发布于 2012-03-20 04:12:52
尝试使用uvcdynctrl,其中-l标志将列出功能,-s可用于设置任何功能http://manpages.ubuntu.com/manpages/natty/man1/uvcdynctrl.1.html
发布于 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
https://stackoverflow.com/questions/1717780
复制相似问题