一、算法简介
学习如何使用在 pcl: : MinCutSegments 类中实现的基于最小切割的分段算法。该算法对给定的输入云进行二进制分割。算法将云分为前景点和背景点(属于对象的点和不属于对象的点)两组。
算法思路如下:
1】对于给定的点云算法,构造一个图,其中包含云的每一个点作为一组顶点以及另外两个称为源和汇的顶点。图的每个顶点对应的点与源相连,汇与边相连。除此之外,每个顶点(除了源和接收点)都有边将对应的点与其最近的邻点连接起来。
2】算法为每个边赋予权重。有三种不同类型的权重:
首先,它给云点之间的边赋予权重。这个权重被称为平滑成本,由以下公式计算:
这里的距离是点与点之间的距离。点距离越远,边缘被切割的可能性就越大。
下一步,算法设置数据成本。它包括前景和背景惩罚。第一个是那些将云点与源顶点连接起来并且具有常数用户定义值的边的权重。第二个分配给连接点与汇点顶点的边,并由公式计算: