SoPruningProcessing3d engine More...
#include <ImageViz/Engines/MathematicalMorphology/HitOrMissAndSkeleton/SoPruningProcessing3d.h>
Public Types | |
enum | PruningMode { RIGOROUS = 0, PERMISSIVE = 1 } |
Public Member Functions | |
SoPruningProcessing3d () | |
Public Attributes | |
SoSFEnum | computeMode |
SoSFEnum | neighborhood3d |
SoSFImageDataAdapter | inBinaryImage |
SoSFEnum | pruningMode |
SoSFInt32 | maxLength |
SoImageVizEngineOutput < SoSFImageDataAdapter, SoImageDataAdapter * > | outBinaryImage |
The SoPruningProcessing3d engine prunes the result of a skeletonization.
It removes all object voxels having only one neighbor. It can be applied either specifying a number of iterations or until convergence. This filter can be used for removing terminal branches from a skeleton.
The skeleton is very sensitive to small distortions on the edges of the objects, generating artifacts. The SoPruningProcessing3d engine eliminates these artifacts by thinning with the E configuration until convergence.
The problem is to determine the number of iterations for the pruning as thinning until convergence will remove all the skeletons except loops and branches intersecting the frame of the image in permissive mode. The strict mode will also stop when an intersection or a right angle is encountered.
See also: SoSkeletonProcessing, SoPruningProcessing2d, SoEndPointsProcessing3d.
computeMode | MODE_AUTO |
neighborhood3d | CONNECTIVITY_26 |
inBinaryImage | NULL |
pruningMode | RIGOROUS |
maxLength | 1 |
RIGOROUS |
Each iteration removes only the end points as defined in SoEndPointsProcessing3d. Using this mode, the pruning stops when an intersection or a right angle is encountered. |
PERMISSIVE |
A skeletonization is reapplied between two iterations. Using this mode, only the closed-loops are kept. |
SoPruningProcessing3d::SoPruningProcessing3d | ( | ) |
Constructor.
Select the compute Mode (2D or 3D or AUTO) Use enum ComputeMode.
Default is MODE_AUTO
The input image.
Supported types include: binary. Default value is NULL. Supported types include: binary image.
Enter the number of iterations (0:until convergence) Default value is 1.
In 3D configuration (see computeMode), the neighborhood connectivity defines the connectivity considered for processing adjacent voxels.
Use enum Neighborhood3d. Default is CONNECTIVITY_26.
SoImageVizEngineOutput<SoSFImageDataAdapter,SoImageDataAdapter*> SoPruningProcessing3d::outBinaryImage |
The output binary image.
Default value is NULL. Supported types include: binary image.
End point mode Use enum PruningMode.
Default is RIGOROUS