🟠 Region Growing Point Cloud Segmentation
Function Description
Region growing algorithm is a segmentation method based on surface normal directions. The basic process is: starting from one or more seed points, iteratively checking neighboring points, and if a neighboring point’s normal is sufficiently similar to the current region’s normal (i.e., the surface is smooth enough), it is merged into the current region. This process repeats continuously until the region can no longer "grow" outward.
Usage Scenarios
-
Surface segmentation: Very suitable for segmenting scenes composed of different planes or smooth curved surfaces.
-
Part feature recognition: Used to separate different planes, curved surfaces, grooves and other geometric features on parts.
-
Boundary-based object separation: When one object is placed on another object’s surface (such as a cup on a table), as long as there are obvious angle changes (normal mutations) at their contact boundaries, this algorithm can effectively separate them.
Input Output
Input |
Point Cloud: Input point cloud to be segmented, must contain normal information. |
Output |
Segmented Point Cloud: Returns a list of segmented point cloud clusters, each element in the list is an identified internally smooth region. |
Parameter Description
Neighboring Points Count
Parameter Description |
When judging the local region characteristics of each point, sets the number of K nearest neighboring points to be found. |
Parameter Adjustment |
|
Parameter Range |
[0,1000], Default: 5 |
Normal Difference Threshold
Parameter Description |
Sets the core smoothness criterion for region growing. Only when the angle between a neighboring point’s normal vector and the current region reference point’s normal vector is less than this threshold can the neighboring point be merged into the region. |
Parameter Adjustment |
|
Parameter Range |
[0,180], Default: 10, Unit: ° |
Difference Threshold
Parameter Description |
Difference threshold is used to assist in judging plane smoothness. Connect the reference point and a neighboring point into a line, and see the "projection" length of this line in the reference point’s normal direction. This length represents how much the neighboring point deviates from the plane where the reference point is located. If this distance is small, it means the neighboring point is almost on the reference point’s plane and the surface is smooth; if this distance is large, it means the neighboring point deviates from the reference point’s plane and the surface has curvature or protrusion. |
Parameter Adjustment |
When processing pure planes, this value can be set smaller; when processing curved surfaces, it needs to be appropriately increased according to curvature. |
Parameter Range |
[0,100000], Default: 10 |
Minimum Cluster Points
Parameter Description |
Post-processing filtering condition. After clustering is complete, clusters with fewer points than this value will be filtered. |
Parameter Adjustment |
Suitable for filtering out meaningless small noise clusters composed of few points. Appropriately increasing this value ensures that the output consists of meaningful clustering results. |
Parameter Range |
[1,4000000], Default: 100 |
Maximum Cluster Points
Parameter Description |
Post-processing filtering condition. After clustering is complete, clusters with more points than this value will be filtered. |
Parameter Adjustment |
Suitable for scenarios where it’s necessary to exclude a very large background or supporting surface. For example, if you want to ignore the tabletop and only analyze small objects on the table, you can set an upper limit to filter out the largest point cloud cluster representing the tabletop. |
Parameter Range |
[1,4000000], Default: 4000000 |
Enable Sorting
Parameter Description |
Whether to sort all final output point cloud clusters (aggregating segmentation results of all input point clouds) by point count from largest to smallest globally. |
Parameter Adjustment |
Enable (True): The output point cloud cluster list will be strictly arranged by point count from most to least. Disable (False): The order of output point cloud clusters may not be fixed. |
Keep All Results
Parameter Description |
Controls whether to output all segmentation results for each input point cloud or keep only part of them. |
Parameter Adjustment |
Enable (True): Default option, keep all found clusters that meet point count limits. Disable (False): Only keep the first N largest clusters specified by the "Keep Result Count" parameter. |
Keep Result Count
Parameter Description |
Sets the number of output point clouds. |
Parameter Adjustment |
For each input point cloud, segmentation results will be sorted by point cloud count from largest to smallest, keeping the first few point clouds. For example, setting to 1 means keeping only the largest result, setting to 2 means keeping the first 2 results, setting to 3 means keeping the first 3 results, and so on. |
Parameter Range |
[1,1000], Default: 1 |