PCL:实现法向量夹角约束的欧式聚类分割
python
import pcl
def euclidean_cluster_segmentation(point_cloud, cluster_tolerance, min_cluster_size, max_cluster_size, angle_threshold):
cloud = pcl.PointCloud()
pcl.save(point_cloud, "input_cloud.pcd")
pcl.load("input_cloud.pcd", cloud)
tree = cloud.make_kdtree()
# 欧式聚类分割
seg = cloud.make_EuclideanClusterExtraction()
seg.set_ClusterTolerance(cluster_tolerance)
seg.set_MinClusterSize(min_cluster_size)
seg.set_MaxClusterSize(max_cluster_size)
seg.set_SearchMethod(tree)
cluster_indices = seg.Extract()
# 法向量夹角约束
normals = cloud.make_NormalEstimation()
normals.set_SearchMethod(tree)
normals.set_KSearch(20)
cloud_normals = normals.compute()