【发布时间】:2013-01-30 07:23:37
【问题描述】:
由于自动对焦,我很难校准两个相机并获得它们的姿势。我正在使用两个相同类型的罗技网络摄像头,openCV 和 C++。
我试过了:
cv::Size imageSize(1600,1200);
cv::VideoCapture cap1(0);
cap1.set(CV_CAP_PROP_FRAME_WIDTH,imageSize.width);
cap1.set(CV_CAP_PROP_FRAME_HEIGHT,imageSize.height);
cv::VideoCapture cap2(1);
cap2.set(CV_CAP_PROP_FRAME_WIDTH,imageSize.width);
cap2.set(CV_CAP_PROP_FRAME_HEIGHT,imageSize.height);
IAMCameraControl *pCameraControl;
HRESULT hr;
if (hr == S_OK) {
long defaultFocusValue = 0;
hr = pCameraControl->Set(CameraControl_Focus, // property
defaultFocusValue, // value
CameraControl_Flags_Manual //Flag
);
}
只使用一台相机它可以工作,但使用两台 - 它不是。
谁能帮帮我?
【问题讨论】:
-
这与计算机视觉有什么关系?您仅使用与平台相关的 API 来控制与设备相关的参数。 OpenCV 在这里什么也不做。不过,我认为这个问题在你将其简化为核心之后就很好了:“如何使用 DirectShow 中的 IAMCameraControl 以编程方式控制两个网络摄像头的自动对焦?”
-
正确支持属性是相机驱动程序的责任。不清楚是你做错了,还是驱动端支持错了。
标签: c++ opencv webcam directshow