🟠 点云对齐直线

功能描述

该算子用于将输入的点云对齐到指定的数学直线上。它会遍历输入的每一个点云和每一个直线模型,根据设定的"直线粗细"参数,筛选出距离直线足够近的点云点,然后将这些点精确地投影到该数学直线上,最终生成一条或多条由这些投影点构成的直线点云。

使用场景

  • 直线特征精炼:在通过“RANSAC拟合”等算子检测出一条或多条直线后,输入的点云(如物体边缘点)可能仍然存在一定的厚度或噪声。此算子可将这些粗糙的边缘点精确地对齐到拟合出的理想直线上,得到干净、标准的线特征。

  • 数据滤波与提取:根据已知的直线位置,从一个复杂的点云中只提取出属于这条直线的点。

  • 测量预处理:在进行长度、距离等精密测量前,将检测到的线状特征进行对齐,以消除因点云噪声或厚度引起的测量误差。

输入输出

输入项

边缘点云:输入的待对齐的点云或点云列表,通常是物体的边缘点。

直线方程参数:一个或多个直线模型的参数列表。

输出项

直线点云:对齐并投影到输入直线模型上的点云列表。每个输出点云都对应一个成功匹配的输入点云与直线模型的组合。

参数说明

该算子有两个版本:

  • 点云对齐直线:处理不带法向信息的点云。

  • 点云对齐直线(带法向):处理带有法向信息的点云。

两者核心功能和参数完全相同,仅处理的点云数据类型不同。

直线粗细

参数说明

定义一个距离阈值,用于判断一个点是否属于某条直线。只有当一个点到直线的垂直距离小于或等于该值时,它才会被认为是这条直线的一部分。

调参说明

  • 增大此值:会放宽筛选条件,使得距离理想直线较远的点也能被包含进来。这适用于原始点云边缘较粗、较模糊或噪声较大的情况。但值过大可能会错误地包含不相关的点。

  • 减小此值:会收紧筛选条件,只有非常靠近理想直线的点才会被选中。这适用于原始点云边缘清晰、噪声小的情况,可以得到更精确的结果,但也可能因过于严格而丢失部分有效点。

参数范围

[0,1000],默认值:10

直线点所占最小比例

参数说明

这是一个质量控制参数。对于每一个输入点云,只有当被识别为属于某条直线的点的数量占该输入点云总点数的比例大于等于此参数值时,算子才会生成最终的直线点云。

调参说明

该参数用于防止从无关的噪声点中意外生成无效的直线。

  • 增大此值:要求更高比例的点都必须符合直线模型,可以有效过滤掉偶然形成的、由少数点构成的“假”直线。

  • 减小此值:放宽该检查,当设置为0时,只要有任何点符合条件,就会生成直线点云,不做比例限制。

如果您确信输入的边缘点云主要就是由直线构成,可以将此值设得较高(如0.5以上);如果不确定,可以适当调低或使用默认值。

参数范围

[0,1],默认值:0.2