3D扫描仪深度失真

时间:2018-01-15 00:22:59

标签: c++ opencv 3d camera-calibration projector

我正在尝试使用OpenCV Structured Light API构建结构光扫描仪。我正在使用立体相机并在相机对之间进行校准。
立体相机误差约为0.26
单个相机误差也在0.22左右
但是在灰码模式解码结束时,我在图像上得到了奇怪的深度失真(链接在下面)。结果应该是平坦的表面,但看起来非常弯曲的表面。 是什么造成这样的错误?

https://docs.opencv.org/3.1.0/dc/da9/tutorial_decode_graycode_pattern.html

深度失真错误图像
https://ibb.co/fp8jU6
https://ibb.co/f16op6

1 个答案:

答案 0 :(得分:0)

当我与其他开源项目进行比较时,重新映射似乎有误。

应使用重映射功能,如下所示

remap( captured_pattern[0][i], captured_pattern[0][i], map1x, map1y, INTER_NEAREST, BORDER_CONSTANT, Scalar() );
remap( captured_pattern[1][i], captured_pattern[1][i], map2x, map2y, INTER_NEAREST, BORDER_CONSTANT, Scalar() );