1.核心思想
欧氏分割的目标是将点云中的不同部分分割成独立的聚类。它的基本思想是通过计算点之间的欧氏距离,将距离较近的点划分为同一聚类。
2.实现步骤
- 选择一个点作为起始点。
- 在一定距离阈值内搜索与该点距离较近的其他点。
- 将这些距离较近的点划分为同一聚类。
- 重复上述步骤,直到所有点都被分配到聚类中。
3.相关程序
#include <pcl/io/ply_io.h>
#include <pcl/segmentation/extract_clusters.h>
#include <pcl/visualization/cloud_viewer.h>
#include <string>
using namespace std;
int
main(int argc, char** argv)
{
pcl::PLYReader reader;
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
reader.read("C:/Users/17927/Desktop/zhuanjiao/chuli/hull1.ply", *cloud);
pcl::search::KdTree<pcl::PointXYZ>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZ>);
tree->setInputCloud(cloud);
std::vector<pcl::PointIndices> cluster_indices;
pcl::EuclideanClusterExtraction<pcl::PointXYZ> ec;
ec.setClusterTolerance(0.5);
ec.setMinClu