我正在解决一个问题,我有一个校准的立体声对并正在识别立体声匹配。然后,我使用 perspectiveTransform
投影这些匹配项以获得 (x, y, z) 坐标。
稍后,我使用 projectPoints
获取这些坐标并将它们重新投影到我原始的、未校正的图像中,并获取我的左相机的 M 和 D 参数。我惊讶地发现,尽管所有这些都发生在同一个校准中,但这些点并没有转换到图像的正确部分(它们有大约 5 像素的偏移量,具体取决于它们在图像中的位置)。此偏移量似乎会随着不同的校准而改变。
我的问题是:我应该预料到这一点,还是我可能做错了什么?看起来校准应该是内部一致的。
这是一个重新映射的单个点的屏幕截图(用两条线绘制):
(忽略小方框,那些是别的东西)
最佳答案
我做错了一些事。当从 3D 重新投影到 2D 时,我错过了 stereoRectify
返回 R1
,即输出校正旋转矩阵。调用 projectPoints
时,我需要将该矩阵的逆 作为第二个参数 (rvec
) 传递。
关于opencv - 立体投影应该内部一致吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432915/