使用Open3D库进行点云的RANSAC平面分割和可视化。
- 引入必要的头文件和命名空间:
main
函数:- 读取点云数据文件到
cloud
对象。如果读取失败,则输出警告信息并返回。 - 输出点云中的点数。
- 定义可视化窗口的宽度和高度。
- 使用Open3D的可视化功能,绘制原始点云,并显示在窗口中。
- 定义RANSAC平面分割的参数:距离阈值
tDis
、拟合平面最小点数minNum
、RANSAC最大迭代次数numIter
、每个平面最少点数pointNum
。 - 创建一个新的点云对象
cloudAll
,用于存储分割后的平面点云。 - 进行循环迭代,直到剩余的点云数小于
pointNum
。 - 在每次迭代中,使用点云对象的
SegmentPlane
方法进行RANSAC平面分割,返回平面参数和内点的索引。 - 根据内点的索引,选择出平面点云对象
inPC
,并将剩余的点云对象cloud
更新为平面外的点。 - 将分割后的平面点云保存到PCD文件中,并命名为"plane_迭代次数.pcd"。
- 为分割后的平面点云赋予随机颜色。
- 将分割后的平面点云添加到
cloudAll
中。 - 使用Open3D的可视化功能,绘制分割后的平面点云,并显示在窗口中。
- 读取点云数据文件到
#include <iostrea