SoPruneProcessing3d 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 SoPruneProcessing3d 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 called prunes. The SoPruneProcessing3d engine eliminates these prunes by thinning with the E configuration until convergence. The structuring element is:
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.
See also: SoSkeletonProcessing, SoPruneProcessing2d, 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