【PCL】教程concave_hull_2d.cpp 对点云进行过滤、分割、投影以及凹包构建

文章详细描述了一个使用PCL库进行3D点云处理的程序,包括过滤、分割、投影和构建凹包等步骤,旨在生成目标物体的凹包表示,用于后续物体识别或分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ddce9d6f52fcbeaa2d031782c1c74dfe.png

[done, 599.439 ms : 307200 points]
Available dimensions: x y z rgb

原始点云

PointCloud after filtering has: 139656 data points.
PointCloud after segmentation has: 123727 inliers.
PointCloud after projection has: 139656 data points.
Concave hull has: 457 data points.

87fdf5e48d2d7bf241aabed4ea8e2049.png

[done, 438.018 ms : 457 points]
Available dimensions: x y z

投影后点云凸包

该段代码是一个使用PCL(Point Cloud Library,点云库)进行点云处理的完整程序。程序的主要过程如下:

  1. 首先,初始化三个pcl::PointCloud<pcl::PointXYZ>智能指针cloud用于存储原始点云数据,cloud_filtered用于存储过滤后的点云数据,cloud_projected用于存储投影后的点云数据。

  2. 使用pcl::PCDReader对象读取名为"table_scene_mug_stereo_textured.pcd"的PCD文件到cloud中。

  3. 使用pcl::PassThrough<pcl::PointXYZ>过滤器来移除点云中的NaN值,同时根据z字段的范围(0到1.1)来裁剪点云,以移除场景背景,结果存入cloud_filtered

  4. 初始化pcl::ModelCoefficientspcl::PointIndices,以存储模型系数和分割得到的内点索引

  5. 创建pcl::SACSegmentation<pcl::PointXYZ>对象进行分割操作,设置模型类型为平面(pcl::SACMODEL_PLANE)方法类型为RANSAC(pcl::SAC_RANSAC),并设定距离阈值为0.01。将cloud_filtered作为输入进行分割,并将内点索引存入inliers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值