Nic*_*lai 3 c++ iteration 3d point-clouds point-cloud-library
我正在尝试使用集成在点云库(PCL)中的迭代最近点(ICP)算法来对齐2组点云.我得到一个错误报告,说它找不到足够的通信点.我已经放宽了参数的条件:setEuclideanFitnessEpsilon(-1.797e + 5),setMaximumIterations(40)和setRANSACIterations(2000)并且仍然有同样的问题..(我还没有找到关于这些条件值应该是哪个或如何应该有多少信息为了适当的对齐,所以在这方面的任何帮助也将非常感激)
我怀疑这个问题与我的云中有很多NULL数据点的事实有关,我的数据点标记为NULL(0).使用PCL时是否正确完成?PCL有任何NULL标准值吗?我显然不希望算法在尝试对齐数据集时考虑那些NULL点.
谢谢你的帮助
如果您使用的是PCL,则无效数据的默认值不是NULL,而是NaN.因此,如果要将某个点标记为无效,则应首先包含<limits>文件,然后将位置设置为"std :: numeric_limits :: quiet_NaN()".通常这样做
const float bad_point = std::numeric_limits<float>::quiet_NaN();
if( is_invalid_point )
p.x = p.y = p.z = bad_point;
Run Code Online (Sandbox Code Playgroud)
但无论如何,配置ICP可能会很痛苦.您可能需要根据数据进行更多参数调整.
| 归档时间: |
|
| 查看次数: |
5323 次 |
| 最近记录: |