Slicer  4.10
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
List of all members | Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Friends
itk::MorphologicalContourInterpolator< TImage > Class Template Reference

Interpolates contours between slices. Based on a paper by Albu et al. More...

#include <Libs/vtkITK/itkMorphologicalContourInterpolator.h>

Inheritance diagram for itk::MorphologicalContourInterpolator< TImage >:
Inheritance graph
[legend]
Collaboration diagram for itk::MorphologicalContourInterpolator< TImage >:
Collaboration graph
[legend]

Public Types

typedef itksys::hash_map< typename TImage::PixelType, SliceSetTypeLabeledSlicesType
 
typedef SmartPointer< SelfPointer
 
typedef MorphologicalContourInterpolator Self
 
typedef std::vector< LabeledSlicesTypeSliceIndicesType
 
typedef std::set< typename TImage::IndexValueType > SliceSetType
 
typedef Image< typename TImage::PixelType, TImage::ImageDimension - 1 > SliceType
 
typedef ImageToImageFilter< TImage, TImage > Superclass
 

Public Member Functions

void ClearLabeledSliceIndices ()
 
void DetermineSliceOrientations ()
 
SliceSetType GetLabeledSliceIndices (unsigned int axis, typename TImage::PixelType label)
 
SliceIndicesType GetLabeledSliceIndices ()
 
 itkGetConstMacro (Label, typename TImage::PixelType)
 
 itkGetConstMacro (Axis, int)
 
 itkGetConstMacro (HeuristicAlignment, bool)
 
 itkGetConstMacro (UseDistanceTransform, bool)
 
 itkGetConstMacro (UseCustomSlicePositions, bool)
 
 itkGetConstMacro (UseBallStructuringElement, bool)
 
 itkGetMacro (Label, typename TImage::PixelType)
 
 itkGetMacro (Axis, int)
 
 itkGetMacro (HeuristicAlignment, bool)
 
 itkGetMacro (UseDistanceTransform, bool)
 
 itkGetMacro (UseCustomSlicePositions, bool)
 
 itkGetMacro (UseBallStructuringElement, bool)
 
 itkNewMacro (Self)
 
 itkSetMacro (Label, typename TImage::PixelType)
 
 itkSetMacro (Axis, int)
 
 itkSetMacro (HeuristicAlignment, bool)
 
 itkSetMacro (UseDistanceTransform, bool)
 
 itkSetMacro (UseCustomSlicePositions, bool)
 
 itkTypeMacro (MorphologicalContourInterpolator, ImageToImageFilter)
 
void SetLabeledSliceIndices (unsigned int axis, typename TImage::PixelType label, const std::vector< typename TImage::IndexValueType > &indices)
 
void SetLabeledSliceIndices (unsigned int axis, typename TImage::PixelType label, const SliceSetType &indices)
 
void SetUseBallStructuringElement (bool useBall)
 

Protected Types

typedef BinaryThresholdImageFilter< SliceType, BoolSliceTypeBinarizerType
 
typedef Image< bool, TImage::ImageDimension > BoolImageType
 
typedef Image< bool, TImage::ImageDimension - 1 > BoolSliceType
 
typedef itksys::hash_map< typename TImage::PixelType, typename TImage::RegionType > BoundingBoxesType
 
typedef ConnectedComponentImageFilter< BoolSliceType, SliceTypeConnectedComponentsType
 
typedef Image< float, TImage::ImageDimension - 1 > FloatSliceType
 
typedef std::vector< typename TImage::PixelType > PixelList
 
typedef ExtractImageFilter< TImage, SliceTypeRoiType
 

Protected Member Functions

SliceType::IndexType Align (typename SliceType::Pointer &iConn, typename TImage::PixelType iRegionId, typename SliceType::Pointer &jConn, const PixelList &jRegionIds)
 
virtual void AllocateOutputs () ITK_OVERRIDE
 
SliceType::RegionType BoundingBox (itk::SmartPointer< SliceType > image)
 
IdentifierType CardSymDifference (typename BoolSliceType::Pointer &shape1, typename BoolSliceType::Pointer &shape2)
 
SliceType::IndexType Centroid (typename SliceType::Pointer &conn, const PixelList &regionIds)
 
BoolSliceType::Pointer Dilate1 (typename BoolSliceType::Pointer &seed, typename BoolSliceType::Pointer &mask, ThreadIdType threadId)
 
template<typename T2 >
void ExpandRegion (typename T2::RegionType &region, const typename T2::IndexType &index)
 
void Extrapolate (int axis, TImage *out, typename TImage::PixelType label, typename TImage::IndexValueType i, typename TImage::IndexValueType j, typename SliceType::Pointer &iConn, typename TImage::PixelType iRegionId, ThreadIdType threadId)
 
BoolSliceType::Pointer FindMedianImageDilations (typename BoolSliceType::Pointer &intersection, typename BoolSliceType::Pointer &iMask, typename BoolSliceType::Pointer &jMask, ThreadIdType threadId)
 
BoolSliceType::Pointer FindMedianImageDistances (typename BoolSliceType::Pointer &intersection, typename BoolSliceType::Pointer &iMask, typename BoolSliceType::Pointer &jMask, ThreadIdType threadId)
 
virtual void GenerateData () ITK_OVERRIDE
 
std::vector< typename BoolSliceType::Pointer > GenerateDilationSequence (typename BoolSliceType::Pointer &begin, typename BoolSliceType::Pointer &end, ThreadIdType threadId)
 
bool ImagesEqual (typename BoolSliceType::Pointer &a, typename BoolSliceType::Pointer &b)
 
void Interpolate1to1 (int axis, TImage *out, typename TImage::PixelType label, typename TImage::IndexValueType i, typename TImage::IndexValueType j, typename SliceType::Pointer &iConn, typename TImage::PixelType iRegionId, typename SliceType::Pointer &jConn, typename TImage::PixelType jRegionId, const typename SliceType::IndexType &translation, bool recursive, ThreadIdType threadId)
 
void Interpolate1toN (int axis, TImage *out, typename TImage::PixelType label, typename TImage::IndexValueType i, typename TImage::IndexValueType j, typename SliceType::Pointer &iConn, typename TImage::PixelType iRegionId, typename SliceType::Pointer &jConn, const PixelList &jRegionIds, const typename SliceType::IndexType &translation, ThreadIdType threadId)
 
void InterpolateAlong (int axis, TImage *out)
 
void InterpolateBetweenTwo (int axis, TImage *out, typename TImage::PixelType label, typename TImage::IndexValueType i, typename TImage::IndexValueType j, typename SliceType::Pointer &iconn, typename SliceType::Pointer &jconn, ThreadIdType threadId)
 
IdentifierType Intersection (typename SliceType::Pointer &iConn, typename TImage::PixelType iRegionId, typename SliceType::Pointer &jConn, const PixelList &jRegionIds, const typename SliceType::IndexType &translation)
 
void IntersectionRegions (const typename SliceType::IndexType &translation, typename SliceType::RegionType &iRegion, typename SliceType::RegionType &jRegion)
 
FloatSliceType::Pointer MaurerDM (typename BoolSliceType::Pointer &inImage, ThreadIdType threadId)
 
 MorphologicalContourInterpolator ()
 
SliceType::Pointer RegionedConnectedComponents (const typename TImage::RegionType &region, typename TImage::PixelType label, IdentifierType &objectCount)
 
SliceType::Pointer TranslateImage (typename SliceType::Pointer &image, const typename SliceType::IndexType &translation, typename SliceType::RegionType newRegion)
 
 ~MorphologicalContourInterpolator ()
 

Protected Attributes

int m_Axis
 
BinarizerType::Pointer m_Binarizer
 
BoundingBoxesType m_BoundingBoxes
 
ConnectedComponentsType::Pointer m_ConnectedComponents
 
bool m_HeuristicAlignment
 
TImage::PixelType m_Label
 
SliceIndicesType m_LabeledSlices
 
IdentifierType m_MaxAlignIters
 
IdentifierType m_MinAlignIters
 
RoiType::Pointer m_RoI
 
IdentifierType m_ThreadCount
 
bool m_UseBallStructuringElement
 
bool m_UseCustomSlicePositions
 
bool m_UseDistanceTransform
 

Friends

template<typename T >
class MorphologicalContourInterpolatorParallelInvoker
 

Detailed Description

template<typename TImage>
class itk::MorphologicalContourInterpolator< TImage >

Interpolates contours between slices. Based on a paper by Albu et al.

Inputs and Outputs
This is an image-to-image filter. The dimensionality is 3D or higher. Input contains an image with some slices segmented, usually manually. The output has all in-between slices also segmented.
Parameters
Slices are detected at positions where a pixel exists with same labeled neighbors in slice and only clear (0) neighbors perpendicular to the slice. If default behaviour is unwanted, contour indices can be set by enabling UseCustomSlicePositions and calling SetLabeledSliceIndices.

Filter can be restricted to run along only one axis, and/or to interpolate just one label.

Since optimal alignment between slices would require exhaustive search, the default is to use heuristic (breadth first search starting from centroid).

There is also an alternative algorithm based on distance transform approach. It is slightly faster, but it can jump across a twisty shape (not geodesic).

Reference: Albu AB, Beugeling T, Laurendeau D. "A morphology-based approach for interslice interpolation of anatomical slices from volumetric images." IEEE Trans Biomed Eng. 2008 Aug;55(8):2022-38. DOI:10.1109/TBME.2008.921158

Acknowledgement: This work is supported by NIH grant R01 EB014346, "Continued development and maintenance of the ITK-SNAP 3D image segmentation software."

Definition at line 65 of file itkMorphologicalContourInterpolator.h.

Member Typedef Documentation

◆ BinarizerType

template<typename TImage >
typedef BinaryThresholdImageFilter< SliceType, BoolSliceType > itk::MorphologicalContourInterpolator< TImage >::BinarizerType
protected

Definition at line 397 of file itkMorphologicalContourInterpolator.h.

◆ BoolImageType

template<typename TImage >
typedef Image< bool, TImage::ImageDimension > itk::MorphologicalContourInterpolator< TImage >::BoolImageType
protected

Derived image typedefs.

Definition at line 231 of file itkMorphologicalContourInterpolator.h.

◆ BoolSliceType

template<typename TImage >
typedef Image< bool, TImage::ImageDimension - 1 > itk::MorphologicalContourInterpolator< TImage >::BoolSliceType
protected

Definition at line 233 of file itkMorphologicalContourInterpolator.h.

◆ BoundingBoxesType

template<typename TImage >
typedef itksys::hash_map< typename TImage::PixelType, typename TImage::RegionType > itk::MorphologicalContourInterpolator< TImage >::BoundingBoxesType
protected

Definition at line 370 of file itkMorphologicalContourInterpolator.h.

◆ ConnectedComponentsType

template<typename TImage >
typedef ConnectedComponentImageFilter< BoolSliceType, SliceType > itk::MorphologicalContourInterpolator< TImage >::ConnectedComponentsType
protected

Definition at line 400 of file itkMorphologicalContourInterpolator.h.

◆ FloatSliceType

template<typename TImage >
typedef Image< float, TImage::ImageDimension - 1 > itk::MorphologicalContourInterpolator< TImage >::FloatSliceType
protected

Definition at line 232 of file itkMorphologicalContourInterpolator.h.

◆ LabeledSlicesType

template<typename TImage >
typedef itksys::hash_map< typename TImage::PixelType, SliceSetType > itk::MorphologicalContourInterpolator< TImage >::LabeledSlicesType

Definition at line 206 of file itkMorphologicalContourInterpolator.h.

◆ PixelList

template<typename TImage >
typedef std::vector< typename TImage::PixelType > itk::MorphologicalContourInterpolator< TImage >::PixelList
protected

Definition at line 313 of file itkMorphologicalContourInterpolator.h.

◆ Pointer

template<typename TImage >
typedef SmartPointer< Self > itk::MorphologicalContourInterpolator< TImage >::Pointer

Definition at line 75 of file itkMorphologicalContourInterpolator.h.

◆ RoiType

template<typename TImage >
typedef ExtractImageFilter< TImage, SliceType > itk::MorphologicalContourInterpolator< TImage >::RoiType
protected

Definition at line 394 of file itkMorphologicalContourInterpolator.h.

◆ Self

template<typename TImage >
typedef MorphologicalContourInterpolator itk::MorphologicalContourInterpolator< TImage >::Self

Standard class typedefs.

Definition at line 73 of file itkMorphologicalContourInterpolator.h.

◆ SliceIndicesType

template<typename TImage >
typedef std::vector< LabeledSlicesType > itk::MorphologicalContourInterpolator< TImage >::SliceIndicesType

Definition at line 207 of file itkMorphologicalContourInterpolator.h.

◆ SliceSetType

template<typename TImage >
typedef std::set< typename TImage::IndexValueType > itk::MorphologicalContourInterpolator< TImage >::SliceSetType

An std::set of slice indices which need to be interpolated.

Definition at line 167 of file itkMorphologicalContourInterpolator.h.

◆ SliceType

template<typename TImage >
typedef Image< typename TImage::PixelType, TImage::ImageDimension - 1 > itk::MorphologicalContourInterpolator< TImage >::SliceType

Definition at line 76 of file itkMorphologicalContourInterpolator.h.

◆ Superclass

template<typename TImage >
typedef ImageToImageFilter< TImage, TImage > itk::MorphologicalContourInterpolator< TImage >::Superclass

Definition at line 74 of file itkMorphologicalContourInterpolator.h.

Constructor & Destructor Documentation

◆ MorphologicalContourInterpolator()

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::MorphologicalContourInterpolator ( )
protected

◆ ~MorphologicalContourInterpolator()

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::~MorphologicalContourInterpolator ( )
inlineprotected

Definition at line 218 of file itkMorphologicalContourInterpolator.h.

Member Function Documentation

◆ Align()

template<typename TImage >
SliceType::IndexType itk::MorphologicalContourInterpolator< TImage >::Align ( typename SliceType::Pointer &  iConn,
typename TImage::PixelType  iRegionId,
typename SliceType::Pointer &  jConn,
const PixelList jRegionIds 
)
protected

How much j needs to be translated to best align with i

◆ AllocateOutputs()

template<typename TImage >
virtual void itk::MorphologicalContourInterpolator< TImage >::AllocateOutputs ( )
protectedvirtual

Copied from ImageSource and changed to allocate a cleared buffer.

◆ BoundingBox()

template<typename TImage >
SliceType::RegionType itk::MorphologicalContourInterpolator< TImage >::BoundingBox ( itk::SmartPointer< SliceType image)
protected

Calculates a bounding box of non-zero pixels.

◆ CardSymDifference()

template<typename TImage >
IdentifierType itk::MorphologicalContourInterpolator< TImage >::CardSymDifference ( typename BoolSliceType::Pointer &  shape1,
typename BoolSliceType::Pointer &  shape2 
)
protected

The returns cardingal of the symmetric distance between images. The images must cover the same region

◆ Centroid()

template<typename TImage >
SliceType::IndexType itk::MorphologicalContourInterpolator< TImage >::Centroid ( typename SliceType::Pointer &  conn,
const PixelList regionIds 
)
protected

Returns the centroid of given regions

◆ ClearLabeledSliceIndices()

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::ClearLabeledSliceIndices ( )
inline

Clears all custom slice positions.

Definition at line 171 of file itkMorphologicalContourInterpolator.h.

◆ DetermineSliceOrientations()

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::DetermineSliceOrientations ( )

If there is a pixel whose all 4-way neighbors belong the the same label except along one axis, and along that axis its neighbors are 0 (background), then that axis should be interpolated along. Interpolation is possible along more than one axis. Updates LabeledSliceIndices.

◆ Dilate1()

template<typename TImage >
BoolSliceType::Pointer itk::MorphologicalContourInterpolator< TImage >::Dilate1 ( typename BoolSliceType::Pointer &  seed,
typename BoolSliceType::Pointer &  mask,
ThreadIdType  threadId 
)
protected

Seed and mask must cover the same region (size and index the same).

◆ ExpandRegion()

template<typename TImage >
template<typename T2 >
void itk::MorphologicalContourInterpolator< TImage >::ExpandRegion ( typename T2::RegionType &  region,
const typename T2::IndexType &  index 
)
protected

Expands a region to incorporate the provided index. Assumes both a valid region and a valid index. It can be invoked with 2D or 3D region, hence the additional template parameter.

◆ Extrapolate()

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::Extrapolate ( int  axis,
TImage *  out,
typename TImage::PixelType  label,
typename TImage::IndexValueType  i,
typename TImage::IndexValueType  j,
typename SliceType::Pointer &  iConn,
typename TImage::PixelType  iRegionId,
ThreadIdType  threadId 
)
protected

Slice i has a region, slice j does not

◆ FindMedianImageDilations()

template<typename TImage >
BoolSliceType::Pointer itk::MorphologicalContourInterpolator< TImage >::FindMedianImageDilations ( typename BoolSliceType::Pointer &  intersection,
typename BoolSliceType::Pointer &  iMask,
typename BoolSliceType::Pointer &  jMask,
ThreadIdType  threadId 
)
protected

Finds an interpolating mask for these two aligned masks

◆ FindMedianImageDistances()

template<typename TImage >
BoolSliceType::Pointer itk::MorphologicalContourInterpolator< TImage >::FindMedianImageDistances ( typename BoolSliceType::Pointer &  intersection,
typename BoolSliceType::Pointer &  iMask,
typename BoolSliceType::Pointer &  jMask,
ThreadIdType  threadId 
)
protected

Finds an interpolating mask for these two aligned masks

◆ GenerateData()

template<typename TImage >
virtual void itk::MorphologicalContourInterpolator< TImage >::GenerateData ( )
protectedvirtual

Does the real work.

◆ GenerateDilationSequence()

template<typename TImage >
std::vector< typename BoolSliceType::Pointer > itk::MorphologicalContourInterpolator< TImage >::GenerateDilationSequence ( typename BoolSliceType::Pointer &  begin,
typename BoolSliceType::Pointer &  end,
ThreadIdType  threadId 
)
protected

A sequence of conditional dilations starting with begin and reaching end. begin and end must cover the same region (size and index the same)

◆ GetLabeledSliceIndices() [1/2]

template<typename TImage >
SliceSetType itk::MorphologicalContourInterpolator< TImage >::GetLabeledSliceIndices ( unsigned int  axis,
typename TImage::PixelType  label 
)
inline

Slice indices between which interpolation is done.

Definition at line 200 of file itkMorphologicalContourInterpolator.h.

◆ GetLabeledSliceIndices() [2/2]

template<typename TImage >
SliceIndicesType itk::MorphologicalContourInterpolator< TImage >::GetLabeledSliceIndices ( )
inline

Slice indices between which interpolation is done.

Definition at line 211 of file itkMorphologicalContourInterpolator.h.

◆ ImagesEqual()

template<typename TImage >
bool itk::MorphologicalContourInterpolator< TImage >::ImagesEqual ( typename BoolSliceType::Pointer &  a,
typename BoolSliceType::Pointer &  b 
)
protected

Are these two slices equal?

◆ Interpolate1to1()

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::Interpolate1to1 ( int  axis,
TImage *  out,
typename TImage::PixelType  label,
typename TImage::IndexValueType  i,
typename TImage::IndexValueType  j,
typename SliceType::Pointer &  iConn,
typename TImage::PixelType  iRegionId,
typename SliceType::Pointer &  jConn,
typename TImage::PixelType  jRegionId,
const typename SliceType::IndexType &  translation,
bool  recursive,
ThreadIdType  threadId 
)
protected

Build transition sequence and pick the median

◆ Interpolate1toN()

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::Interpolate1toN ( int  axis,
TImage *  out,
typename TImage::PixelType  label,
typename TImage::IndexValueType  i,
typename TImage::IndexValueType  j,
typename SliceType::Pointer &  iConn,
typename TImage::PixelType  iRegionId,
typename SliceType::Pointer &  jConn,
const PixelList jRegionIds,
const typename SliceType::IndexType &  translation,
ThreadIdType  threadId 
)
protected

Splits the bigger region and does N 1-to-1 interpolations

◆ InterpolateAlong()

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::InterpolateAlong ( int  axis,
TImage *  out 
)
protected

If interpolation is done along more than one axis, the interpolations are merged using a modified "or" rule: -if all interpolated images have 0 for a given pixel, the output is 0 -if just one image has a non-zero label, then that label is chosen -if more than one image has a non-zero label, last written label is chosen

◆ InterpolateBetweenTwo()

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::InterpolateBetweenTwo ( int  axis,
TImage *  out,
typename TImage::PixelType  label,
typename TImage::IndexValueType  i,
typename TImage::IndexValueType  j,
typename SliceType::Pointer &  iconn,
typename SliceType::Pointer &  jconn,
ThreadIdType  threadId 
)
protected

Determines correspondances between two slices and calls appropriate methods.

◆ Intersection()

template<typename TImage >
IdentifierType itk::MorphologicalContourInterpolator< TImage >::Intersection ( typename SliceType::Pointer &  iConn,
typename TImage::PixelType  iRegionId,
typename SliceType::Pointer &  jConn,
const PixelList jRegionIds,
const typename SliceType::IndexType &  translation 
)
protected

Returns number of intersecting pixels

◆ IntersectionRegions()

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::IntersectionRegions ( const typename SliceType::IndexType &  translation,
typename SliceType::RegionType &  iRegion,
typename SliceType::RegionType &  jRegion 
)
protected

Calculates maximum intersection region for both slices given a translation. Both inputs are modified so that jRegion is a translated version of iRegion.

◆ itkGetConstMacro() [1/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetConstMacro ( Label  ,
typename TImage::PixelType   
)

Which label is interpolated. 0 means all labels (default).

◆ itkGetConstMacro() [2/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetConstMacro ( Axis  ,
int   
)

Axis of interpolation. -1 means interpolation along all axes (default).

◆ itkGetConstMacro() [3/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetConstMacro ( HeuristicAlignment  ,
bool   
)

Heuristic alignment of regions for interpolation is faster than optimal alignment. Default is heuristic.

◆ itkGetConstMacro() [4/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetConstMacro ( UseDistanceTransform  ,
bool   
)

Using distance transform instead of repeated dilations to calculate the median contour is slightly faster, but produces lower quality interpolations. Default is OFF (that is, use repeated dilations).

◆ itkGetConstMacro() [5/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetConstMacro ( UseCustomSlicePositions  ,
bool   
)

Use custom slice positions (not slice auto-detection). SetLabeledSliceIndices has to be called prior to Update().

◆ itkGetConstMacro() [6/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetConstMacro ( UseBallStructuringElement  ,
bool   
)

Use ball instead of default cross structuring element for repeated dilations.

◆ itkGetMacro() [1/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetMacro ( Label  ,
typename TImage::PixelType   
)

Which label is interpolated. 0 means all labels (default).

◆ itkGetMacro() [2/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetMacro ( Axis  ,
int   
)

Axis of interpolation. -1 means interpolation along all axes (default).

◆ itkGetMacro() [3/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetMacro ( HeuristicAlignment  ,
bool   
)

Heuristic alignment of regions for interpolation is faster than optimal alignment. Default is heuristic.

◆ itkGetMacro() [4/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetMacro ( UseDistanceTransform  ,
bool   
)

Using distance transform instead of repeated dilations to calculate the median contour is slightly faster, but produces lower quality interpolations. Default is OFF (that is, use repeated dilations).

◆ itkGetMacro() [5/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetMacro ( UseCustomSlicePositions  ,
bool   
)

Use custom slice positions (not slice auto-detection). SetLabeledSliceIndices has to be called prior to Update().

◆ itkGetMacro() [6/6]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkGetMacro ( UseBallStructuringElement  ,
bool   
)

Use ball instead of default cross structuring element for repeated dilations.

◆ itkNewMacro()

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkNewMacro ( Self  )

Method for creation through the object factory.

◆ itkSetMacro() [1/5]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkSetMacro ( Label  ,
typename TImage::PixelType   
)

Interpolate only this label. Interpolates all labels if set to 0 (default).

◆ itkSetMacro() [2/5]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkSetMacro ( Axis  ,
int   
)

Interpolate only along this axis. Interpolates along all axes if set to -1 (default).

◆ itkSetMacro() [3/5]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkSetMacro ( HeuristicAlignment  ,
bool   
)

Heuristic alignment of regions for interpolation is faster than optimal alignment. Default is heuristic.

◆ itkSetMacro() [4/5]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkSetMacro ( UseDistanceTransform  ,
bool   
)

Using distance transform instead of repeated dilations to calculate the median contour is slightly faster, but produces lower quality interpolations. Default is OFF (that is, use repeated dilations).

◆ itkSetMacro() [5/5]

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkSetMacro ( UseCustomSlicePositions  ,
bool   
)

Use custom slice positions (not slice auto-detection). SetLabeledSliceIndices has to be called prior to Update().

◆ itkTypeMacro()

template<typename TImage >
itk::MorphologicalContourInterpolator< TImage >::itkTypeMacro ( MorphologicalContourInterpolator< TImage >  ,
ImageToImageFilter   
)

Run-time type information (and related methods).

◆ MaurerDM()

template<typename TImage >
FloatSliceType::Pointer itk::MorphologicalContourInterpolator< TImage >::MaurerDM ( typename BoolSliceType::Pointer &  inImage,
ThreadIdType  threadId 
)
protected

Creates a signed distance field image.

◆ RegionedConnectedComponents()

template<typename TImage >
SliceType::Pointer itk::MorphologicalContourInterpolator< TImage >::RegionedConnectedComponents ( const typename TImage::RegionType &  region,
typename TImage::PixelType  label,
IdentifierType &  objectCount 
)
protected

Connected components of a specified region.

◆ SetLabeledSliceIndices() [1/2]

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::SetLabeledSliceIndices ( unsigned int  axis,
typename TImage::PixelType  label,
const std::vector< typename TImage::IndexValueType > &  indices 
)
inline

If default slice detection is not wanted, slice indices between which interpolation is done can be set using this method.

Definition at line 181 of file itkMorphologicalContourInterpolator.h.

◆ SetLabeledSliceIndices() [2/2]

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::SetLabeledSliceIndices ( unsigned int  axis,
typename TImage::PixelType  label,
const SliceSetType indices 
)
inline

If default slice detection is not wanted, slice indices between which interpolation is done can be set using this method.

Definition at line 192 of file itkMorphologicalContourInterpolator.h.

◆ SetUseBallStructuringElement()

template<typename TImage >
void itk::MorphologicalContourInterpolator< TImage >::SetUseBallStructuringElement ( bool  useBall)
inline

Use ball instead of default cross structuring element for repeated dilations.

Definition at line 143 of file itkMorphologicalContourInterpolator.h.

◆ TranslateImage()

template<typename TImage >
SliceType::Pointer itk::MorphologicalContourInterpolator< TImage >::TranslateImage ( typename SliceType::Pointer &  image,
const typename SliceType::IndexType &  translation,
typename SliceType::RegionType  newRegion 
)
protected

Crates a translated copy of part of the image which fits in the newRegion.

Friends And Related Function Documentation

◆ MorphologicalContourInterpolatorParallelInvoker

template<typename TImage >
template<typename T >
friend class MorphologicalContourInterpolatorParallelInvoker
friend

Definition at line 69 of file itkMorphologicalContourInterpolator.h.

Member Data Documentation

◆ m_Axis

template<typename TImage >
int itk::MorphologicalContourInterpolator< TImage >::m_Axis
protected

Definition at line 220 of file itkMorphologicalContourInterpolator.h.

◆ m_Binarizer

template<typename TImage >
BinarizerType::Pointer itk::MorphologicalContourInterpolator< TImage >::m_Binarizer
protected

Definition at line 398 of file itkMorphologicalContourInterpolator.h.

◆ m_BoundingBoxes

template<typename TImage >
BoundingBoxesType itk::MorphologicalContourInterpolator< TImage >::m_BoundingBoxes
protected

Definition at line 371 of file itkMorphologicalContourInterpolator.h.

◆ m_ConnectedComponents

template<typename TImage >
ConnectedComponentsType::Pointer itk::MorphologicalContourInterpolator< TImage >::m_ConnectedComponents
protected

Definition at line 401 of file itkMorphologicalContourInterpolator.h.

◆ m_HeuristicAlignment

template<typename TImage >
bool itk::MorphologicalContourInterpolator< TImage >::m_HeuristicAlignment
protected

Definition at line 221 of file itkMorphologicalContourInterpolator.h.

◆ m_Label

template<typename TImage >
TImage::PixelType itk::MorphologicalContourInterpolator< TImage >::m_Label
protected

Definition at line 219 of file itkMorphologicalContourInterpolator.h.

◆ m_LabeledSlices

template<typename TImage >
SliceIndicesType itk::MorphologicalContourInterpolator< TImage >::m_LabeledSlices
protected

Definition at line 228 of file itkMorphologicalContourInterpolator.h.

◆ m_MaxAlignIters

template<typename TImage >
IdentifierType itk::MorphologicalContourInterpolator< TImage >::m_MaxAlignIters
protected

Definition at line 226 of file itkMorphologicalContourInterpolator.h.

◆ m_MinAlignIters

template<typename TImage >
IdentifierType itk::MorphologicalContourInterpolator< TImage >::m_MinAlignIters
protected

Definition at line 225 of file itkMorphologicalContourInterpolator.h.

◆ m_RoI

template<typename TImage >
RoiType::Pointer itk::MorphologicalContourInterpolator< TImage >::m_RoI
protected

Definition at line 395 of file itkMorphologicalContourInterpolator.h.

◆ m_ThreadCount

template<typename TImage >
IdentifierType itk::MorphologicalContourInterpolator< TImage >::m_ThreadCount
protected

Definition at line 227 of file itkMorphologicalContourInterpolator.h.

◆ m_UseBallStructuringElement

template<typename TImage >
bool itk::MorphologicalContourInterpolator< TImage >::m_UseBallStructuringElement
protected

Definition at line 223 of file itkMorphologicalContourInterpolator.h.

◆ m_UseCustomSlicePositions

template<typename TImage >
bool itk::MorphologicalContourInterpolator< TImage >::m_UseCustomSlicePositions
protected

Definition at line 224 of file itkMorphologicalContourInterpolator.h.

◆ m_UseDistanceTransform

template<typename TImage >
bool itk::MorphologicalContourInterpolator< TImage >::m_UseDistanceTransform
protected

Definition at line 222 of file itkMorphologicalContourInterpolator.h.


The documentation for this class was generated from the following file: