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 Member Functions | 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 64 of file itkParabolicErodeDilateImageFilter.h.

+ Inheritance diagram for itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >:

Public Types

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

Public Member Functions

virtual const char * GetClassName () const
 
virtual const RadiusTypeGetScale ()
 
virtual const boolGetUseImageSpacing ()
 
 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 (void) 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
 

Protected Attributes

bool m_UseImageSpacing
 

Private Member Functions

void operator= (const Self &)
 
 ParabolicErodeDilateImageFilter (const Self &)
 

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>
typedef SmartPointer< const Self > itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::ConstPointer

Definition at line 74 of file itkParabolicErodeDilateImageFilter.h.

◆ InputImageConstPointer

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

Definition at line 92 of file itkParabolicErodeDilateImageFilter.h.

◆ InputImagePointer

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

Smart pointer typedef support.

Definition at line 91 of file itkParabolicErodeDilateImageFilter.h.

◆ InputImageType

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

Pixel Type of the input image

Definition at line 83 of file itkParabolicErodeDilateImageFilter.h.

◆ InputSizeType

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

Definition at line 93 of file itkParabolicErodeDilateImageFilter.h.

◆ InternalRealType

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

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 112 of file itkParabolicErodeDilateImageFilter.h.

◆ OutputImageRegionType

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

Definition at line 107 of file itkParabolicErodeDilateImageFilter.h.

◆ OutputImageType

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

Definition at line 84 of file itkParabolicErodeDilateImageFilter.h.

◆ OutputPixelType

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

Definition at line 88 of file itkParabolicErodeDilateImageFilter.h.

◆ OutputSizeType

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

Definition at line 94 of file itkParabolicErodeDilateImageFilter.h.

◆ Pointer

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

Definition at line 73 of file itkParabolicErodeDilateImageFilter.h.

◆ RadiusType

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

a type to represent the "kernel radius"

Definition at line 97 of file itkParabolicErodeDilateImageFilter.h.

◆ RealType

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

Definition at line 86 of file itkParabolicErodeDilateImageFilter.h.

◆ ScalarRealType

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

Definition at line 87 of file itkParabolicErodeDilateImageFilter.h.

◆ Self

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

Standard class typedefs.

Definition at line 71 of file itkParabolicErodeDilateImageFilter.h.

◆ Superclass

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

Definition at line 72 of file itkParabolicErodeDilateImageFilter.h.

Constructor & Destructor Documentation

◆ ParabolicErodeDilateImageFilter() [1/2]

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 ( )
inlineoverrideprotected

Definition at line 144 of file itkParabolicErodeDilateImageFilter.h.

◆ ParabolicErodeDilateImageFilter() [2/2]

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::ParabolicErodeDilateImageFilter ( const Self )
private

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 ( void  )
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

◆ 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.

◆ operator=()

template<typename TInputImage , bool doDilate, typename TOutputImage = TInputImage>
void itk::ParabolicErodeDilateImageFilter< TInputImage, doDilate, TOutputImage >::operator= ( const Self )
private

◆ 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 169 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 166 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 168 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 165 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 158 of file itkParabolicErodeDilateImageFilter.h.



Generated on 1667476801 for elastix by doxygen 1.9.4 elastix logo