Slicer
5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
|
Convert binary labelmap representation (vtkOrientedImageData type) to closed surface representation (vtkPolyData type). The conversion algorithm performs a marching cubes operation on the image data followed by an optional decimation step. More...
#include <Libs/vtkSegmentationCore/vtkBinaryLabelmapToClosedSurfaceConversionRule.h>
Public Types | |
typedef vtkSegmentationConverterRule | Superclass |
Public Types inherited from vtkSegmentationConverterRule | |
typedef std::map< std::string, std::pair< std::string, std::string > > | ConversionParameterListType |
typedef vtkObject | Superclass |
Public Member Functions | |
vtkDataObject * | ConstructRepresentationObjectByClass (std::string className) override |
vtkDataObject * | ConstructRepresentationObjectByRepresentation (std::string representationName) override |
bool | Convert (vtkSegment *segment) override |
Update the target representation based on the source representation. More... | |
bool | CreateClosedSurface (vtkOrientedImageData *inputImage, vtkPolyData *outputPolydata, std::vector< int > values) |
Perform the actual binary labelmap to closed surface conversion. More... | |
vtkSegmentationConverterRule * | CreateRuleInstance () override |
virtual const char * | GetClassName () |
unsigned int | GetConversionCost (vtkDataObject *sourceRepresentation=nullptr, vtkDataObject *targetRepresentation=nullptr) override |
Get the cost of the conversion. More... | |
const char * | GetName () override |
Human-readable name of the converter rule. More... | |
const char * | GetSourceRepresentationName () override |
Human-readable name of the source representation. More... | |
const char * | GetTargetRepresentationName () override |
Human-readable name of the target representation. More... | |
virtual int | IsA (const char *type) |
bool | PostConvert (vtkSegmentation *segmentation) override |
Public Member Functions inherited from vtkSegmentationConverterRule | |
virtual vtkSegmentationConverterRule * | Clone () |
Create a new instance of this rule and copy its contents. More... | |
virtual std::string | GetConversionParameter (const std::string &name) |
Get a conversion parameter value. More... | |
virtual std::string | GetConversionParameterDescription (const std::string &name) |
Get a conversion parameter description. More... | |
virtual void | GetRuleConversionParameters (ConversionParameterListType &conversionParameters) |
bool | HasConversionParameter (const std::string &name) |
Determine if the rule has a parameter with a certain name. More... | |
virtual bool | PostConvert (vtkSegmentation *vtkNotUsed(segmentation)) |
virtual bool | PreConvert (vtkSegmentation *vtkNotUsed(segmentation)) |
virtual void | SetConversionParameter (const std::string &name, const std::string &value, const std::string &description="") |
Set a conversion parameter. More... | |
Static Public Member Functions | |
static const std::string | GetComputeSurfaceNormalsParameterName () |
Conversion parameter: compute surface normals. More... | |
static const std::string | GetDecimationFactorParameterName () |
Conversion parameter: decimation factor. More... | |
static const std::string | GetJointSmoothingParameterName () |
static const std::string | GetSmoothingFactorParameterName () |
Conversion parameter: smoothing factor. More... | |
static int | IsTypeOf (const char *type) |
static vtkBinaryLabelmapToClosedSurfaceConversionRule * | New () |
static vtkBinaryLabelmapToClosedSurfaceConversionRule * | SafeDownCast (vtkObject *o) |
Static Public Member Functions inherited from vtkSegmentationConverterRule | |
static unsigned int | GetConversionInfiniteCost () |
static int | IsTypeOf (const char *type) |
static vtkSegmentationConverterRule * | SafeDownCast (vtkObject *o) |
Protected Member Functions | |
bool | IsLabelmapPaddingNecessary (vtkImageData *binaryLabelMap) |
vtkBinaryLabelmapToClosedSurfaceConversionRule () | |
~vtkBinaryLabelmapToClosedSurfaceConversionRule () override | |
Protected Member Functions inherited from vtkSegmentationConverterRule | |
virtual bool | CreateTargetRepresentation (vtkSegment *segment) |
Update the target representation based on the source representation. More... | |
void | operator= (const vtkSegmentationConverterRule &) |
vtkSegmentationConverterRule () | |
~vtkSegmentationConverterRule () override | |
Protected Attributes | |
std::map< vtkOrientedImageData *, vtkSmartPointer< vtkPolyData > > | JointSmoothCache |
Protected Attributes inherited from vtkSegmentationConverterRule | |
ConversionParameterListType | ConversionParameters |
bool | ReplaceTargetRepresentation {false} |
Convert binary labelmap representation (vtkOrientedImageData type) to closed surface representation (vtkPolyData type). The conversion algorithm performs a marching cubes operation on the image data followed by an optional decimation step.
Definition at line 38 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.
Definition at line 55 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.
|
protected |
|
overrideprotected |
|
overridevirtual |
Constructs representation object from class name for the supported representation classes (typically source and target representation VTK classes, subclasses of vtkDataObject) Note: Need to take ownership of the created object! For example using vtkSmartPointer<vtkDataObject>::Take
Implements vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
|
overridevirtual |
Constructs representation object from representation name for the supported representation classes (typically source and target representation VTK classes, subclasses of vtkDataObject) Note: Need to take ownership of the created object! For example using vtkSmartPointer<vtkDataObject>::Take
Implements vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
|
overridevirtual |
Update the target representation based on the source representation.
Implements vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
bool vtkBinaryLabelmapToClosedSurfaceConversionRule::CreateClosedSurface | ( | vtkOrientedImageData * | inputImage, |
vtkPolyData * | outputPolydata, | ||
std::vector< int > | values | ||
) |
Perform the actual binary labelmap to closed surface conversion.
|
overridevirtual |
Create instance of the default node. Similar to New but virtual method. Subclasses should implement this method by
Implements vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
|
virtual |
Reimplemented from vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
|
inlinestatic |
Conversion parameter: compute surface normals.
Definition at line 47 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.
|
overridevirtual |
Get the cost of the conversion.
Reimplemented from vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
|
inlinestatic |
Conversion parameter: decimation factor.
Definition at line 43 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.
|
inlinestatic |
Conversion parameter: joint smoothing If joint smoothing is enabled, surfaces will be created and smoothed as one vtkPolyData. Joint smoothing converts all segments in shared labelmap together, reducing smoothing artifacts.
Definition at line 51 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.
|
inlineoverridevirtual |
Human-readable name of the converter rule.
Implements vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
Definition at line 82 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.
|
inlinestatic |
Conversion parameter: smoothing factor.
Definition at line 45 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.
|
inlineoverridevirtual |
Human-readable name of the source representation.
Implements vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
Definition at line 85 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.
|
inlineoverridevirtual |
Human-readable name of the target representation.
Implements vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
Definition at line 88 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.
|
virtual |
Reimplemented from vtkSegmentationConverterRule.
Reimplemented in vtkFractionalLabelmapToClosedSurfaceConversionRule.
|
protected |
If input labelmap has non-background border voxels, then those regions remain open in the output closed surface. This function checks whether this is the case.
|
static |
|
static |
|
override |
Perform postprocessing steps on the output Clears the joint smoothing cache
|
static |
|
protected |
Cache for storing merged closed surfaces that have been joint smoothed The key used is the binary labelmap representation, which maps to the combined vtkPolyData containing surfaces for all segments in the segmentation
Definition at line 102 of file vtkBinaryLabelmapToClosedSurfaceConversionRule.h.