#include \n#include <pcl/io/ply_io.h>\n#include <pcl/point_types.h>\n#include <pcl/search/kdtree.h>\n#include <pcl/segmentation/extract_clusters.h>\n#include <pcl/visualization/pcl_visualizer.h>\n\nint main()\n{\n\tpcl::PointCloudpcl::PointXYZ::Ptr cloud(new pcl::PointCloudpcl::PointXYZ);\n\tpcl::io::loadPLYFile("E:\dianyun\09.ply", *cloud);\n\n\t// 定义搜索树对象\n\tpcl::search::KdTreepcl::PointXYZ::Ptr kdtree(new pcl::search::KdTreepcl::PointXYZ);\n\tkdtree->setInputCloud(cloud);\n\n\t// 定义聚类对象\n\tpcl::EuclideanClusterExtractionpcl::PointXYZ ec;\n\tec.setClusterTolerance(0.02); // 设置聚类的最大距离阈值\n\tec.setMinClusterSize(50); // 设置聚类的最小点数\n\tec.setMaxClusterSize(5000); // 设置聚类的最大点数\n\tec.setSearchMethod(kdtree);\n\tec.setInputCloud(cloud);\n\n\t// 寻找聚类\n\tstd::vectorpcl::PointIndices cluster_indices;\n\tec.extract(cluster_indices);\n\n\t// 输出每个聚类得到的点云数\n\tfor (int i = 0; i < cluster_indices.size(); i++)\n\t{\n\t std::cout << "Cluster " << i+1 << " has " << cluster_indices[i].indices.size() << " points" << std::endl;\n\t}\n\n\treturn 0;\n}