How to mark NULL data in Point Cloud Library (PCL) when using Iterative Closest Point (ICP)(使用迭代最近点 (ICP) 时如何在点云库 (PCL) 中标记 NULL 数据)
问题描述
我正在尝试使用 点云库 (PCL) 中集成的迭代最近点 (ICP) 算法来对齐两组点云.我收到一个错误报告,说它找不到足够的对应点.我已经放宽了参数的条件:setEuclideanFitnessEpsilon(-1.797e+5)、setMaximumIterations(40) 和 setRANSACIterations(2000) 并且仍然有同样的问题..(我还没有找到很多关于这些条件值应该使用哪些或如何使用的信息进行适当的调整,因此任何帮助在这方面也将不胜感激)
I´m trying to align 2 sets of point clouds using the Iterative Closest Point (ICP) algorithm integrated within Point Cloud Library (PCL). I´m getting an error report saying that it cant find enough correspondence points. I have already relaxed the conditions for the parameters: setEuclideanFitnessEpsilon(-1.797e+5), setMaximumIterations(40) and setRANSACIterations(2000) and still having the same problem.. (I havent found much info about which or how these conditional values should be for a proper alignement, so any help in this regard would be really appreciated too)
我怀疑这个问题与我的云中有许多 NULL 数据点有关,我已将其标记为 NULL (0).使用 PCL 时是否正确完成?PCL 是否有任何 NULL 标准值?我显然不希望算法在尝试对齐数据集时考虑那些 NULL 点..
I´m suspecting that this problem has to do with the fact that I have many NULL data points in my cloud, which I´ve marked with the value NULL (0). Is that properly done when using PCL? Is there any NULL standard value for PCL? I clearly dont want the algorithm to consider those NULL points when trying to align the data sets..
感谢您的帮助
推荐答案
如果使用PCL,无效数据的默认值不是NULL,而是NaN.所以如果你想将一个点标记为无效,你应该首先包含<limits>
文件,然后将位置设置为'std::numeric_limits::quiet_NaN()'.一般是这样的
If you are using PCL, default value of invalid data is not NULL, but is NaN. So if you want to mark a point as invalid, you should first include <limits>
file and then set the positions to 'std::numeric_limits::quiet_NaN()'. It is usually done like this
const float bad_point = std::numeric_limits<float>::quiet_NaN();
if( is_invalid_point )
p.x = p.y = p.z = bad_point;
但无论如何,配置 ICP 可能会很痛苦.根据您的数据,您可能需要做更多的参数调整.
But anyway, configuring ICP can be a pain. You may have to do a lot more parameter tweaking depending on your data.
这篇关于使用迭代最近点 (ICP) 时如何在点云库 (PCL) 中标记 NULL 数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用迭代最近点 (ICP) 时如何在点云库 (PCL) 中标记 NULL 数据
基础教程推荐
- 使用scanf()读取字符串 1970-01-01
- C++定义类对象 1970-01-01
- end() 能否成为 stl 容器的昂贵操作 2022-10-23
- C++ #define 1970-01-01
- 初始化变量和赋值运算符 1970-01-01
- C++输入/输出运算符重载 1970-01-01
- C语言访问数组元素 1970-01-01
- 明确指定任何或所有枚举数的整数值 1970-01-01
- 分别使用%o和%x以八进制或十六进制格式显示整 1970-01-01
- C++按值调用 1970-01-01