opencv - 立体投影应该内部一致吗?

标签 opencv computer-vision

我正在解决一个问题,我有一个校准的立体声对并正在识别立体声匹配。然后,我使用 perspectiveTransform 投影这些匹配项以获得 (x, y, z) 坐标。

稍后,我使用 projectPoints 获取这些坐标并将它们重新投影到我原始的、未校正的图像中,并获取我的左相机的 M 和 D 参数。我惊讶地发现,尽管所有这些都发生在同一个校准中,但这些点并没有转换到图像的正确部分(它们有大约 5 像素的偏移量,具体取决于它们在图像中的位置)。此偏移量似乎会随着不同的校准而改变。

我的问题是:我应该预料到这一点,还是我可能做错了什么?看起来校准应该是内部一致的。

这是一个重新映射的单个点的屏幕截图(用两条线绘制):

stereo

(忽略小方框,那些是别的东西)

最佳答案

我做错了一些事。当从 3D 重新投影到 2D 时,我错过了 stereoRectify 返回 R1,即输出校正旋转矩阵。调用 projectPoints 时,我需要将该矩阵的 作为第二个参数 (rvec) 传递。

关于opencv - 立体投影应该内部一致吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23432915/

相关文章:

android - IplImage 裁剪和旋转 - Android

python - Tensorflow CNN 模型出现错误 "NaN loss during training."

c++ - OpenCV:将矩阵作为可选参数传递

c++ - 基于图像的计数算法对移动传送带上的物体进行计数

python - 要保存的变量应该在字典或列表中传递

opencv - 裁剪关键点与裁剪图像和寻找关键点

python - 如何使用 Python OpenCV 裁剪图像上的每个字符?

c++ - Opencv 保存视频

java - [Java-Opencv] : How convert an image from Cartesian space to Polar space?

python - Otsu 阈值 OpenCV Python