首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用迭代最近点(ICP)标记点云库(PCL)中的空数据

如何使用迭代最近点(ICP)标记点云库(PCL)中的空数据
EN

Stack Overflow用户
提问于 2013-06-24 17:31:51
回答 1查看 6.7K关注 0票数 4

我试图使用迭代最近点云(ICP)算法对齐2组点云,该算法集成在点云库( Point Cloud Library )中。我收到一份错误报告说它找不到足够的通信点。我已经放宽了参数的条件: setEuclideanFitnessEpsilon(-1.797e+5)、setMaximumIterations(40)和setRANSACIterations(2000),但仍然存在相同的问题。(我没有找到很多关于这些条件值应该是什么或如何对齐的信息,所以在这方面对的任何帮助也是非常感谢的)

我怀疑这个问题与我的云中有许多空数据点有关,我用NULL (0)值标记了这个值。在使用PCL时,这样做合适吗?PCL有空标准值吗?我显然不希望算法在试图对齐数据集时考虑这些空点。

谢谢你的帮忙

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-24 18:56:33

如果您正在使用PCL,无效数据的默认值不是NULL,而是NaN。因此,如果要将一个点标记为无效,首先应该包括<limits>文件,然后将位置设置为'std::numeric_limits::quiet_NaN()‘。通常是这样做的

代码语言:javascript
复制
const float bad_point = std::numeric_limits<float>::quiet_NaN();
if( is_invalid_point )
    p.x = p.y = p.z = bad_point;

但是无论如何,配置ICP可能会很痛苦。根据您的数据,您可能需要做更多的参数调整。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17281470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档