我有两个不同相机(不同分辨率)的立体声校准参数。我想将此数据用于立体校正和计算视差图。问题在于两个摄像机的图像大小不同,我不知道如何指定这些大小。 cvStereoRectify仅采用单一大小,前提是两个图像的大小相同。

在这方面的任何建议将不胜感激。

问候,

可汗

最佳答案

您是否尝试过在高分辨率相机上使用感兴趣的区域?例如,假设您有640x480的摄像头和800x600的摄像头。您可以执行以下操作:

VideoCapture videoLo(LOW), videoHi(HIGH);
Mat loRes, hiRes;

Point hiCenter(hiRes.size().width / 2, hiRes.size().height / 2);

int key = 0;
do
{
    videoLo >> loRes;
    videoHi >> hiRes;

    // this will give you the center 640x480 of the high res image.
    Mat hiResWin(hiRes, Rect(hiCenter.x - loRes.size().width / 2,
                             hiCenter.y - loRes.size().height / 2,
                             loRes.size().width,
                             loRes.size().height));

    key = waitKey(33);
} while((char)key != 27);

希望对您有所帮助!

07-27 13:39