【发布时间】:2019-11-12 20:56:06
【问题描述】:
我下载并构建了 OpenCV 4.1.1(使用 install-opencv.sh)然后尝试在我的相机上使用 stereo_calib,但结果一直很差;我得到 0.6 的 RMS 误差。博文Building OpenCV Stereo Vision - Calibration 说:
校准完成后,输出和RMS误差。我得到了一个 RMS 0.3 这对于 VGA 相机来说非常好,但可能会更好。如果 RMS 高于 0.5,我建议您重复该过程。
为了演示一个很好的示例,我使用了samples/data - stereo_calib.xml 中提供的示例数据及其列出的图像。 stereo_calib 的结果是:
..........................13 pairs have been successfully detected.
Running stereo calibration ...
done with RMS error=0.635856
average epipolar err = 0.443478
这似乎与我从数据中得到的大致相同。即使 RMS 误差高于 0.5,这是一个合理的结果吗?那么平均极线误差呢?
我使用结果在第一个示例图像上运行 stereo_match:
stereo_match -i=intrinsics.yml -e=extrinsics.yml -o=disparity.png -p=point_cloud.txt --max-disparity=16 --blocksize=15 left01.jpg right01.jpg
由此产生的差异看起来不太好:
但在CloudCompare 中查看 point_cloud.txt 似乎确实显示了一个平面对象(棋盘),尽管效果很差。这工作正常吗?或者它是一个坏例子?
【问题讨论】:
标签: c++ opencv stereo-3d calibration