使用了自定义的AlphaShape
类来提取点云数据的边界点,并使用Open3D库进行可视化。
- 引入必要的头文件和命名空间:
main
函数:- 读取点云数据文件到
cloud
对象。如果读取失败,则输出错误信息并返回。 - 将点云数据全部着色为蓝色。
- 创建一个空的点云对象
boundaryCloud
,用于存储提取的边界点。 - 定义一个半径阈值
search_radius
。 - 创建
AlphaShape
对象BoundaryEstimation
,并调用其alpha_shapes
方法提取边界点,结果保存在boundaryCloud
中。 - 如果成功提取到边界点,则输出边界点的数量,并将边界点全部着色为红色。如果提取失败,则输出错误信息并返回。
- 使用Open3D的可视化功能,创建窗口并设置窗口属性。
- 将
boundaryCloud
和原始点云cloud
添加到可视化窗口中,并运行可视化。
- 读取点云数据文件到
#pragma once
#include <iostream>
#include <vector>
#include<Open3D\Open3D.h>using namespace std;class AlphaShape
{//数据成员double m_search_radius;public:AlphaShape(float search_radius =