点云分割,点云聚类,找出特征点云

1思路

点云中有多组点,通过点云聚类找出其中点数最多的一组。

2代码

pcl::search::KdTree<pcl::PointXYZRGBA>::Ptr tree(new pcl::search::KdTree<pcl::PointXYZRGBA>);
	tree->setInputCloud(cloud_box);
	std::vector<pcl::PointIndices> cluster_indices;
	pcl::EuclideanClusterExtraction<pcl::PointXYZRGBA> ec;
	ec.setClusterTolerance(0.02); 
	ec.setMinClusterSize(100);    
	ec.setMaxClusterSize(50000);  
	ec.setSearchMethod(tree);     
	ec.setInputCloud(cloud_box);  
	ec.extract(cluster_indices);  
	size_t num = cluster_indices.size();
	cout << num << endl;
	int num_points = cluster_indices[0].indices.size();
	int num_index;
	for (size_t i = 0; i < num; i++)
	{
		if (cluster_indices[i].indices.size() > num_points)
		{
			num_points = cluster_indices[i].indices.size();
			num_index = i;
		}		
	}
	pcl::copyPointCloud(*cloud_box, cluster_indices[num_index].indices, *cloud_box_filter);

3效果

点云分割,点云聚类,找出特征点云_第1张图片
点云分割,点云聚类,找出特征点云_第2张图片

你可能感兴趣的:(点云分割,点云聚类,找出特征点云)