【发布时间】:2018-06-23 15:27:32
【问题描述】:
我正在尝试使用 OpenCV Structured Light API 构建结构光扫描仪。我正在使用立体相机并在相机对之间进行校准。
立体相机误差约为 0.26
个别相机误差也在0.22左右
但在格雷码模式解码结束时,我的图像出现了奇怪的深度失真(链接如下)。结果应该是平坦的表面,但表面看起来非常弯曲。
是什么导致了这样的错误?
https://docs.opencv.org/3.1.0/dc/da9/tutorial_decode_graycode_pattern.html
【问题讨论】:
-
用已知物体去扭曲传感器。
-
已经有一部分是关于不失真和重新映射的。 initUndistortRectifyMap(cam1intrinsics, cam1distCoeffs, R1, P1, imagesSize, CV_32FC1, map1x, map1y);重映射(捕获模式[1][i],捕获模式[1][i],map1x,map1y,INTER_NEAREST,BORDER_CONSTANT,标量());
但是好像不太好用或者我校准的问题太大了 -
如果去掉那部分,结果是好是坏?
-
我认为有/没有 remap ibb.co/c3yw96 没有 remap ibb.co/m92pU6 有 remap 在对象表面上会好一点
-
只是为了再次检查,您确定您没有在校准时间和 3D 捕获时间之间移动硬件吗?另外你确定相机的焦点没有设置为自动吗?
标签: c++ opencv 3d camera-calibration projector