代码的主要作用是对点云数据进行边界提取,并通过可视化展示边界提取结果。代码的主要流程如下:
- 加载点云数据;
- 计算点云中每个点的法向量;
- 使用边界特征估计算法计算点云中每个点的边界特征;
- 遍历点云中的每个点,提取边界点;
- 可视化展示原始点云和边界点云。
具体的代码解释如下:
- 定义指向点云数据的指针变量
cloud
,并使用loadPCDFile
函数从文件中读取点云数据,将其存储在cloud
指针中。 - 使用法向量估计算法计算点云中每个点的法向量,将其存储在
pcl::PointCloud<pcl::Normal>::Ptr
类型的normals
指针中。 - 使用边界特征估计算法,根据点云中每个点的法向量和距离信息,计算出点云中每个点的边界特征,将其存储在
pcl::PointCloud<pcl::Boundary>
类型的boundaries
变量中。 - 遍历点云中的每个点,如果该点为边界点,则将其加入到
pcl::PointCloud<pcl::PointXYZ>::Ptr
类型的cloud_boundary
变量中,同时打印出边界点的个数。 - 使用PCL可视化工具,创建一个窗口并添加两个视口,分别用于展示原始点云和边界点云。在每个视口中添加相应的文本和点云数据,并设置点云颜色。最后通过一个while循环实现可视化展示。
变量名称的含义解释如下:
cloud