0

由于自动对焦,我很难校准两台相机并获得它们的姿势。我正在使用两个相同类型的罗技网络摄像头,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
                                ); 
}   

仅使用一台相机即可工作,但使用两台 - 不是。

谁能帮帮我?

4

1 回答 1

0

IAMCameraControl接口在 DirectShow 捕获过滤器上公开您没有展示如何获得此接口,但通常您需要从每个捕获过滤器中获取此接口的单独实例,如(C# 代码示例):

IAMVideoProcAmp VideoProcAmp1 { get { return cap1 as IAMVideoProcAmp; } }
IAMVideoProcAmp VideoProcAmp2 { get { return cap2 as IAMVideoProcAmp; } }
于 2013-03-15T09:11:35.133 回答