接上一篇.
上一篇中,看起来我们基本完成了重建。但是有很多问题:
- 问题1:如果你真正跑起来(00数据集),你会发现点云没有正确拼接。这是点云化的部分有问题。
- 问题2:跑起来,你会发现很乱,除了问题1,还有是因为y方向剪裁不够,即还有很多天空像天花板一样贴在了顶上,所以从上面看是看不到道路的。
- 问题3:乱的原因除了问题1,2,还有是因为z方向剪裁仍然不够。实际操作发现超过一小段距离点云就开始出现“裂缝”,也是从此距离开始,其实往后大段的点云都不能用。
接下来具体分析原因,并解决。
问题1.
在上一篇中,看我们对点云位置进行偏移,对齐原点:
double tscale = 1;
T = angle;
T(0, 3) = keyVec[i].tx / tscale;
T(1, 3) = keyVec[i].ty / tscale;
T(2, 3) = keyVec[i].tz / tscale;
这个tscale应该改成5。为什么?因为在我们在image2PointCloudInverse中点云化图片的时候:
pix = cvGet2D(img, m, n);
PointT p