go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes
itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage > Class Template Reference

#include <itkParabolicErodeDilateImageFilter.h>

Detailed Description

template<typename TInputImage, bool doDilate, typename TOutputImage = TInputImage>
class itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >

Parent class for morphological operations with parabolic structuring elements.

Parabolic structuring elements are the morphological counterpart of the gaussian function in linear processing. Parabolic structuring elements are dimensionally decomposable and fast algorithms are available for computing erosions and dilations along lines. This class implements the "point of contact" algorithm, which is reasonably efficient. Improved versions, that are nearly independent of structuring function size, are also known but haven't been implemented here.

Parabolic structuring functions can be used as a fast alternative to the "rolling ball" structuring element classically used in background estimation, for example in ImageJ, have applications in image sharpening and distance transform computation.

This class uses an internal buffer of RealType pixels for each line. This line is cast to the output pixel type when written back to the output image. Since the filter uses dimensional decomposition this approach could result in inaccuracy as pixels are cast back and forth between low and high precision types. Use a high precision output type and cast manually if this is a problem.

This filter is threaded. Threading mechanism derived from SignedMaurerDistanceMap extensions by Gaetan Lehman

Author
Richard Beare, Department of Medicine, Monash University, Australia. Richa.nosp@m.rd.B.nosp@m.eare@.nosp@m.med..nosp@m.monas.nosp@m.h.ed.nosp@m.u.au

Definition at line 62 of file itkParabolicErodeDilateImageFilter.h.

Inheritance diagram for itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >:
Inheritance graph
[legend]

Public Types

using ConstPointer = SmartPointer< const Self >
 
using InputImageConstPointer = typename TInputImage::ConstPointer
 
using InputImagePointer = typename TInputImage::Pointer
 
using InputImageType = TInputImage
 
using InputSizeType = typename TInputImage::SizeType
 
using InternalRealType = typename NumericTraits< PixelType >::FloatType
 
using OutputImageRegionType = typename OutputImageType::RegionType
 
using OutputImageType = TOutputImage
 
using OutputPixelType = typename TOutputImage::PixelType
 
using OutputSizeType = typename TOutputImage::SizeType
 
using Pointer = SmartPointer< Self >
 
using RadiusType = typename itk::FixedArray< ScalarRealType, TInputImage::ImageDimension >
 
using RealType = typename NumericTraits< PixelType >::RealType
 
using ScalarRealType = typename NumericTraits< PixelType >::ScalarRealType
 
using Self = ParabolicErodeDilateImageFilter
 
using Superclass = ImageToImageFilter< TInputImage, TOutputImage >
 

Public Member Functions

virtual const char * GetClassName () const
 
virtual const RadiusTypeGetScale ()
 
virtual const boolGetUseImageSpacing ()
 
 ITK_DISALLOW_COPY_AND_MOVE (ParabolicErodeDilateImageFilter)
 
 itkStaticConstMacro (ImageDimension, unsigned int, TInputImage::ImageDimension)
 
 itkStaticConstMacro (InputImageDimension, unsigned int, TInputImage::ImageDimension)
 
 itkStaticConstMacro (OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
 
virtual void SetScale (RadiusType _arg)
 
void SetScale (ScalarRealType scale)
 
virtual void SetUseImageSpacing (bool _arg)
 
virtual void UseImageSpacingOff ()
 
virtual void UseImageSpacingOn ()
 

Static Public Member Functions

static Pointer New ()
 

Protected Member Functions

void EnlargeOutputRequestedRegion (DataObject *output) override
 
void GenerateData () override
 
 ParabolicErodeDilateImageFilter ()
 
void PrintSelf (std::ostream &os, Indent indent) const override
 
int SplitRequestedRegion (int i, int num, OutputImageRegionType &splitRegion)
 
void ThreadedGenerateData (const OutputImageRegionType &outputRegionForThread, ThreadIdType threadId) override
 
 ~ParabolicErodeDilateImageFilter () override=default
 

Protected Attributes

bool m_UseImageSpacing
 

Private Attributes

int m_CurrentDimension
 
TInputImage::PixelType m_Extreme
 
int m_MagnitudeSign
 
RadiusType m_Scale
 

Member Typedef Documentation

◆ ConstPointer

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::ConstPointer = SmartPointer<const Self>

Definition at line 72 of file itkParabolicErodeDilateImageFilter.h.

◆ InputImageConstPointer

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::InputImageConstPointer = typename TInputImage::ConstPointer

Definition at line 90 of file itkParabolicErodeDilateImageFilter.h.

◆ InputImagePointer

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::InputImagePointer = typename TInputImage::Pointer

Smart pointer typedef support.

Definition at line 89 of file itkParabolicErodeDilateImageFilter.h.

◆ InputImageType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::InputImageType = TInputImage

Pixel Type of the input image

Definition at line 81 of file itkParabolicErodeDilateImageFilter.h.

◆ InputSizeType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::InputSizeType = typename TInputImage::SizeType

Definition at line 91 of file itkParabolicErodeDilateImageFilter.h.

◆ InternalRealType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::InternalRealType = typename NumericTraits<PixelType>::FloatType

Define the image type for internal computations RealType is usually 'double' in NumericTraits. Here we prefer float in order to save memory.

Definition at line 107 of file itkParabolicErodeDilateImageFilter.h.

◆ OutputImageRegionType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::OutputImageRegionType = typename OutputImageType::RegionType

Definition at line 102 of file itkParabolicErodeDilateImageFilter.h.

◆ OutputImageType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::OutputImageType = TOutputImage

Definition at line 82 of file itkParabolicErodeDilateImageFilter.h.

◆ OutputPixelType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::OutputPixelType = typename TOutputImage::PixelType

Definition at line 86 of file itkParabolicErodeDilateImageFilter.h.

◆ OutputSizeType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::OutputSizeType = typename TOutputImage::SizeType

Definition at line 92 of file itkParabolicErodeDilateImageFilter.h.

◆ Pointer

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::Pointer = SmartPointer<Self>

Definition at line 71 of file itkParabolicErodeDilateImageFilter.h.

◆ RadiusType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::RadiusType = typename itk::FixedArray<ScalarRealType, TInputImage::ImageDimension>

a type to represent the "kernel radius"

Definition at line 95 of file itkParabolicErodeDilateImageFilter.h.

◆ RealType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::RealType = typename NumericTraits<PixelType>::RealType

Definition at line 84 of file itkParabolicErodeDilateImageFilter.h.

◆ ScalarRealType

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::ScalarRealType = typename NumericTraits<PixelType>::ScalarRealType

Definition at line 85 of file itkParabolicErodeDilateImageFilter.h.

◆ Self

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::Self = ParabolicErodeDilateImageFilter

Standard class typedefs.

Definition at line 69 of file itkParabolicErodeDilateImageFilter.h.

◆ Superclass

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
using itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::Superclass = ImageToImageFilter<TInputImage, TOutputImage>

Definition at line 70 of file itkParabolicErodeDilateImageFilter.h.

Constructor & Destructor Documentation

◆ ParabolicErodeDilateImageFilter()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::ParabolicErodeDilateImageFilter ( )
protected

Image related typedefs.

◆ ~ParabolicErodeDilateImageFilter()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::~ParabolicErodeDilateImageFilter ( )
overrideprotecteddefault

Member Function Documentation

◆ EnlargeOutputRequestedRegion()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::EnlargeOutputRequestedRegion ( DataObject *  output)
overrideprotected

◆ GenerateData()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::GenerateData ( )
overrideprotected

Generate Data

◆ GetClassName()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
virtual const char * itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::GetClassName ( ) const
virtual

Runtime information support.

Reimplemented in itk::ParabolicErodeImageFilter< TInputImage, TOutputImage >.

◆ GetScale()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
virtual const RadiusType & itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::GetScale ( )
virtual

◆ GetUseImageSpacing()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
virtual const bool & itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::GetUseImageSpacing ( )
virtual

◆ ITK_DISALLOW_COPY_AND_MOVE()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::ITK_DISALLOW_COPY_AND_MOVE ( ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >  )

◆ itkStaticConstMacro() [1/3]

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::itkStaticConstMacro ( ImageDimension  ,
unsigned int  ,
TInputImage::ImageDimension   
)

Image dimension.

◆ itkStaticConstMacro() [2/3]

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::itkStaticConstMacro ( InputImageDimension  ,
unsigned int  ,
TInputImage::ImageDimension   
)

◆ itkStaticConstMacro() [3/3]

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::itkStaticConstMacro ( OutputImageDimension  ,
unsigned int  ,
TOutputImage::ImageDimension   
)

◆ New()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
static Pointer itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::New ( )
static

Method for creation through the object factory.

◆ PrintSelf()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const
overrideprotected

◆ SetScale() [1/2]

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
virtual void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::SetScale ( RadiusType  _arg)
virtual

◆ SetScale() [2/2]

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::SetScale ( ScalarRealType  scale)

◆ SetUseImageSpacing()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
virtual void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::SetUseImageSpacing ( bool  _arg)
virtual

Set/Get whether the scale refers to pixels or world units - default is false

◆ SplitRequestedRegion()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
int itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::SplitRequestedRegion ( int  i,
int  num,
OutputImageRegionType splitRegion 
)
protected

◆ ThreadedGenerateData()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::ThreadedGenerateData ( const OutputImageRegionType outputRegionForThread,
ThreadIdType  threadId 
)
overrideprotected

◆ UseImageSpacingOff()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
virtual void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::UseImageSpacingOff ( )
virtual

◆ UseImageSpacingOn()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
virtual void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::UseImageSpacingOn ( )
virtual

Field Documentation

◆ m_CurrentDimension

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
int itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::m_CurrentDimension
private

Definition at line 163 of file itkParabolicErodeDilateImageFilter.h.

◆ m_Extreme

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
TInputImage::PixelType itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::m_Extreme
private

Definition at line 160 of file itkParabolicErodeDilateImageFilter.h.

◆ m_MagnitudeSign

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
int itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::m_MagnitudeSign
private

Definition at line 162 of file itkParabolicErodeDilateImageFilter.h.

◆ m_Scale

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
RadiusType itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::m_Scale
private

Definition at line 159 of file itkParabolicErodeDilateImageFilter.h.

◆ m_UseImageSpacing

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
bool itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::m_UseImageSpacing
protected

Definition at line 156 of file itkParabolicErodeDilateImageFilter.h.



Generated on 2023-01-13 for elastix by doxygen 1.9.6 elastix logo