🟠 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

  • Increase this value: Larger neighborhood makes the algorithm more robust to noise but may smooth out some minor detail features.

  • Decrease this value: Makes the algorithm more sensitive to local details and normal mutations but may be more susceptible to noise normal interference.

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

  • Smaller values (e.g., 5°-15°): Stricter segmentation conditions, only points with very consistent normals will be classified together. This causes breakage at places with slight bending or edges, producing more and smaller segmentation regions.

  • Larger values (e.g., 30°-45°): More relaxed segmentation conditions, allowing regions to "cross" some less sharp edges, tending to generate fewer and larger segmentation regions.

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

  • Smaller values: Require point cloud surfaces to be very flat, and slight bending will cause breakage.

  • Larger values: Allow regions to continue growing on surfaces with certain curvature.

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

Enable Node

Parameter Description

Controls whether this operator performs computation.

Parameter Adjustment

  • Enable (default): Normal operation of the operator function.

  • Disable: The operator does not perform any operations and directly outputs the input data.