ITK  4.0.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Member Functions | Private Attributes
itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage > Class Template Reference

Denoise a binary image using min/max curvature flow. More...

#include <itkBinaryMinMaxCurvatureFlowImageFilter.h>

Inheritance diagram for itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >:
Collaboration diagram for itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >:

List of all members.

Public Types

typedef
BinaryMinMaxCurvatureFlowFunction
< OutputImageType
BinaryMinMaxCurvatureFlowFunctionType
typedef SmartPointer< const SelfConstPointer
typedef
Superclass::FiniteDifferenceFunctionType 
FiniteDifferenceFunctionType
typedef Superclass::OutputImageType OutputImageType
typedef SmartPointer< SelfPointer
typedef
BinaryMinMaxCurvatureFlowImageFilter 
Self
typedef
MinMaxCurvatureFlowImageFilter
< TInputImage, TOutputImage > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
 typedef (Concept::Convertible< typename TInputImage::PixelType, typename TOutputImage::PixelType >) InputConvertibleToOutputCheck
virtual void SetThreshold (double _arg)
virtual double GetThreshold () const

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = Superclass::ImageDimension

Protected Member Functions

virtual void InitializeIteration ()
 BinaryMinMaxCurvatureFlowImageFilter ()
 ~BinaryMinMaxCurvatureFlowImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const

Private Member Functions

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

Private Attributes

double m_Threshold

Detailed Description

template<class TInputImage, class TOutputImage>
class itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >

Denoise a binary image using min/max curvature flow.

BinaryMinMaxCurvatureFlowImageFilter implements a curvature driven image denosing algorithm. This filter assumes that the image is essentially binary: consisting of two classes. Iso-brightness contours in the input image are viewed as a level set. The level set is then evolved using a curvature-based speed function:

\[ I_t = F_{\mbox{minmax}} |\nabla I| \]

where $ F_{\mbox{minmax}} = \min(\kappa,0) $ if $ \mbox{Avg}_{\mbox{stencil}}(x) $ is less than or equal to $ T_{thresold} $ and $ \max(\kappa,0) $, otherwise. $ \kappa $ is the mean curvature of the iso-brightness contour at point $ x $.

In min/max curvature flow, movement is turned on or off depending on the scale of the noise one wants to remove. Switching depends on the average image value of a region of radius $ R $ around each point. The choice of $ R $, the stencil radius, governs the scale of the noise to be removed.

The threshold value $ T_{threshold} $ is a user specified value which discriminates between the two pixel classes.

This filter make use of the multi-threaded finite difference solver hierarchy. Updates are computed using a BinaryMinMaxCurvatureFlowFunction object. A zero flux Neumann boundary condition is used when computing derivatives near the data boundary.

Warning:
This filter assumes that the input and output types have the same dimensions. This filter also requires that the output image pixels are of a real type. This filter works for any dimensional images.

Reference: "Level Set Methods and Fast Marching Methods", J.A. Sethian, Cambridge Press, Chapter 16, Second edition, 1999.

See also:
BinaryMinMaxCurvatureFlowFunction
CurvatureFlowImageFilter
MinMaxCurvatureFlowImageFilter

Definition at line 76 of file itkBinaryMinMaxCurvatureFlowImageFilter.h.


Member Typedef Documentation

template<class TInputImage , class TOutputImage >
typedef BinaryMinMaxCurvatureFlowFunction< OutputImageType > itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::BinaryMinMaxCurvatureFlowFunctionType
template<class TInputImage , class TOutputImage >
typedef SmartPointer< const Self > itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::ConstPointer
template<class TInputImage , class TOutputImage >
typedef Superclass::FiniteDifferenceFunctionType itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::FiniteDifferenceFunctionType

Inherit typedefs from Superclass.

Reimplemented from itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >.

Definition at line 90 of file itkBinaryMinMaxCurvatureFlowImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef Superclass::OutputImageType itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::OutputImageType
template<class TInputImage , class TOutputImage >
typedef SmartPointer< Self > itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::Pointer
template<class TInputImage , class TOutputImage >
typedef BinaryMinMaxCurvatureFlowImageFilter itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::Self

Standard class typedefs.

Reimplemented from itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >.

Definition at line 81 of file itkBinaryMinMaxCurvatureFlowImageFilter.h.

template<class TInputImage , class TOutputImage >
typedef MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage > itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::Superclass

Constructor & Destructor Documentation

template<class TInputImage , class TOutputImage >
itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::BinaryMinMaxCurvatureFlowImageFilter ( ) [protected]

End concept checking

template<class TInputImage , class TOutputImage >
itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::~BinaryMinMaxCurvatureFlowImageFilter ( ) [inline, protected]

End concept checking

Definition at line 119 of file itkBinaryMinMaxCurvatureFlowImageFilter.h.

template<class TInputImage , class TOutputImage >
itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::BinaryMinMaxCurvatureFlowImageFilter ( const Self ) [private]

Member Function Documentation

template<class TInputImage , class TOutputImage >
virtual::itk::LightObject::Pointer itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::CreateAnother ( void  ) const [virtual]

Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.

Reimplemented from itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual const char* itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual double itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::GetThreshold ( ) const [virtual]

Set/Get the threshold value.

template<class TInputImage , class TOutputImage >
virtual void itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::InitializeIteration ( ) [protected, virtual]

Initialize the state of filter and equation before each iteration. Progress feeback is implemented as part of this method.

Reimplemented from itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
static Pointer itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
void itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::operator= ( const Self ) [private]

PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.

Reimplemented from itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
void itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

End concept checking

Reimplemented from itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >.

template<class TInputImage , class TOutputImage >
virtual void itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::SetThreshold ( double  _arg) [virtual]

Set/Get the threshold value.

template<class TInputImage , class TOutputImage >
itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::typedef ( Concept::Convertible< typename TInputImage::PixelType, typename TOutputImage::PixelType >  )

Begin concept checking This class requires InputConvertibleToOutputCheck in the form of ( Concept::Convertible< typename TInputImage::PixelType, typename TOutputImage::PixelType > )


Member Data Documentation

template<class TInputImage , class TOutputImage >
const unsigned int itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::ImageDimension = Superclass::ImageDimension [static]

Dimensionality of input and output data is assumed to be the same. It is inherited from the superclass.

Reimplemented from itk::MinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >.

Definition at line 101 of file itkBinaryMinMaxCurvatureFlowImageFilter.h.

template<class TInputImage , class TOutputImage >
double itk::BinaryMinMaxCurvatureFlowImageFilter< TInputImage, TOutputImage >::m_Threshold [private]

Definition at line 134 of file itkBinaryMinMaxCurvatureFlowImageFilter.h.


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