python - 打开 cv 立体相机校准
问题描述
我正在尝试使用 open cv 进行立体校准。我已经成功地对每台相机进行了内在校准。之后我尝试了打开 cv“stereoCalibrate”函数来查找外部参数。我想稍后将它们用于立体声整流。
我从立体校准中获得的外部参数非常糟糕,我发现,在此过程中获取的图像点的顺序会发生变化。在第一幅图像中,图像点从左上角开始,到右下角结束。在第二张图片中,它们从右下方开始。
结果,图像点与对象点不匹配,参数也不好。
该问题仅发生在两台摄像机中的一台上。
有什么想法可以“强制”校准板的方向,以便正确分配图像点吗?
提前致谢!
解决方案
我比较两个对角的 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++ 上,但是,我认为,这个想法很清楚
推荐阅读
- sql - Node.JS Oracle 补丁请求不是动态的
- javascript - 通过ajax调用查找用户本地时间
- reactjs - 如何在平面列表中显示来自 firebase 的数据?
- rest - 如何为没有等效 HTTP 方法的 REST URL 建模?
- python-3.x - 即使出现错误,我如何继续循环?Python
- pine-script - pivothigh/pivotlow 没有按预期工作
- python-3.x - 如何在 Python 中设置结果的小数位数
- linux - 如何在没有手动密码提示的情况下在centos中添加用户
- reactjs - 无法在 reactJS 中更新状态
- python - 如何在数据框的同一列的不同行中执行集合之间的联合