给定两个摄像机之间的R和T,将调用OpenCV中的StereoRectify函数以执行摄像机校正以对齐两个图像平面。无论使用功能Rodrigues从R计算出的两台摄像机之间的 Angular 有多大,这是否总能成功?我希望学习相机校正的原理。任何介绍性论文或链接都将受到赞赏。
最佳答案
我在想同样的问题。从代数的观点来看,图像校正是通过在已知极线几何的一对图像上应用2D投影变换(或单应性)来实现的,从而原始图像中的极线映射到变换图像中的水平对齐线。
因此,StereoRectify是对同一实体场景的两个图像进行单应变换,以使它们对应的对极线重合并变得平行于图像x轴的过程。始终应该有可以进行校正过程的“旋转和平移”,但是由于冗余的自由度,立体校正的解决方案不是唯一的,并且实际上可能导致不良的失真或陷入失真函数的局部最小值中。
我有两台相机的tested a stereo platform,我使用了不同的姿势(R和T)。当我获得良好的校准参数时,我总是能够找到良好的整流图像。输出图像的大小在很大程度上取决于相机的重叠 View 和失真参数。
但是,应将每次匹配项的搜索域限制为与x轴平行的线,但实际上,有时甚至只有几行。
一些有趣的论文:
关于opencv - 在给定R和T的情况下,立体整流能否始终成功,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45783679/