我用立体视觉来获得三维重建。我在用opencv库。我用这种方式实现了我的代码:
1)立体校准
2)图像对的不失真和校正
3)视差图--使用SGBM
4)三维坐标计算depht图--解出reprojectImageTo3D();
结果:
-Good视差图和良好的三维重建
-Bad三维坐标值,距离不符合现实。
三维距离,相机与物体之间的距离,误差为10 mm,且随距离的增加而增大。我使用了各种各样的基线,而且总是出错。当我比较外部参数,向量T,输出的"stereoRectify“基线匹配。所以我不知道问题出在哪里。
有人能帮我一下吗?谢谢。
CAlibration:
http://textuploader.com/ocxl http://textuploader.com/ocxm
发布于 2014-10-26 20:25:51
对于立体视觉解决方案来说,10毫米的误差是合理的,这当然取决于传感器的灵敏度、分辨率、基线和与目标的距离。
相对于目标距离的不断增大的误差也是典型的问题--立体对应实质上是两个视频传感器与目标之间的三角剖分,而距离越大,视频传感器与目标之间的角度导数就会转化为深度轴上的较大距离,这就意味着较大的误差。一个很好的例子是,当视频传感器与目标之间的角度几乎是正确的时候,这意味着在估计时任何小的正误差都会将估计的深度抛到无穷远。
你选择的架构看起来不错。您可以尝试增加传感器的分辨率,或者深入到校准过程,这个过程在openCV库中有很大的调整空间--确保只选择棋盘静态拍摄的图像,选择棋盘不同姿态的更高种类,添加图像,直到两幅图像之间的配准降至允许的最大误差以下,等等。
https://stackoverflow.com/questions/26577243
复制相似问题