分割杯子模型,主要组合如下的接口:
1. PassThrough 直通滤波,保留感兴趣区
2. NormalEstimation 法线估计
3. SACSegmentationFromNormals 法线方向的模型拟合分割
原始点云如下:

使用pcd_viewer查看点云
第一步,读取点云:

读取点云
第二步,提取感兴趣部分:

使用 直通滤波,设置 z = 0~1.5之间
第三步, 估计法线、进行平面拟合分割:

提取平面,然后就只剩下 杯子的点云,对应的标号3的位置
第四步,使用 圆柱拟合提取杯子模型:

在第三步的剩下的点云里继续拟合分割,得到杯子点云和模型参数
整个步骤比较清晰,一步一步实现了杯子的拟合。
编写核心的 拟合代码插件如下:
struct SegSacModelWithNormals
{
bool random = false;
int model = 0; //所提取目标模型的属性(平面、球、圆柱等等)
int method = 0; // SAC_RANSAC

本文详细介绍了如何通过直通滤波、法线估计和SACSegmentationFromNormals算法从原始点云数据中逐步提取3D杯子模型。首先,通过设置z轴范围保留感兴趣区域,接着估计法线并进行平面拟合去除背景,最后进行圆柱拟合以获取精确的杯子点云和模型参数。
最低0.47元/天 解锁文章
1448

被折叠的 条评论
为什么被折叠?



