问题描述
我有这个物体的点云
我想测量工件所在的平面与标记为红色和蓝色的点之间的距离。我已经有了平面方程,可以删除与平面对应的点并计算其与这些点之间的距离。但是我不知道如何选择红点和蓝点,还有什么方法可以帮助解决这个问题?
解决方法
- 如果您的云具有高质量法线,您可以尝试使用以下方法利用子部分之间的不连续性 pcl::RegionGrowing具有严格的平滑度标准(如果点法线之间的偏差小于平滑度阈值,则建议它们在同一簇中)。
- 如果知道所有子部分的大小,则可以计算一个定向的边界框,然后(大致)切出两个圆形部分。
- 如果您不知道大小,则在计算定向的边界框(并旋转以使x为长轴-例如)之后,对x值进行装箱,并为每个x计算最小值/ max y值。这应该使您对它的形状有所了解。
无论哪种方式,一旦有了子零件,就可以计算它的质心,然后为每个点计算到中心的距离。这将为您分配半径。
- 如果您有更精细的子部分(来自上述方法1),则可以通过考虑均值和最小半径来确定哪个子项。
- 如果您有一个粗糙的子部分(来自上面的方法#2 /#3),则应根据半径将点划分为“红色” /“蓝色”。您可能需要反复进行此操作(每次都要重新定义质心)。