首页 > 解决方案 > 打开 cv 立体相机校准

问题描述

我正在尝试使用 open cv 进行立体校准。我已经成功地对每台相机进行了内在校准。之后我尝试了打开 cv“stereoCalibrate”函数来查找外部参数。我想稍后将它们用于立体声整流。

我从立体校准中获得的外部参数非常糟糕,我发现,在此过程中获取的图像点的顺序会发生变化。在第一幅图像中,图像点从左上角开始,到右下角结束。在第二张图片中,它们从右下方开始。

结果,图像点与对象点不匹配,参数也不好。

该问题仅发生在两台摄像机中的一台上。

有什么想法可以“强制”校准板的方向,以便正确分配图像点吗?

提前致谢!

标签: pythonopencvcamera-calibration

解决方案


我比较两个对角的 y 坐标:

if ((pointBuf1[num - 1].y < pointBuf1[0].y))
    std::reverse(std::begin(pointBuf1), std::end(pointBuf1));
if ((pointBuf2[num - 1].y < pointBuf2[0].y))
    std::reverse(std::begin(pointBuf2), std::end(pointBuf2));

pointBuf1 和 pointBuf2 是来自左右相机的图像点。这段代码在 C++ 上,但是,我认为,这个想法很清楚


推荐阅读