Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage > Class Template Reference

This class implements the filter for computing the normal vectors from a scalar implicit function (i.e. a levelset image) and processing them. More...

#include <itkImplicitManifoldNormalVectorFilter.h>

Inheritance diagram for itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >:

Inheritance graph
[legend]
Collaboration diagram for itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef ImplicitManifoldNormalVectorFilter Self
typedef FiniteDifferenceSparseImageFilter<
TInputImage, TSparseOutputImage > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef Superclass::InputImageType InputImageType
typedef Superclass::IndexType IndexType
typedef Superclass::NodeDataType NormalVectorType
typedef Superclass::NodeValueType NodeValueType
typedef Superclass::FiniteDifferenceFunctionType FiniteDifferenceFunctionType
typedef Superclass::SparseOutputImageType SparseOutputImageType
typedef Superclass::OutputNodeType NormalBandNodeType
typedef Superclass::NodeListType NodeListType
typedef ConstNeighborhoodIterator<
InputImageType
InputImageIteratorType
typedef NormalVectorFunctionBase<
SparseOutputImageType
NormalFunctionType
typedef FiniteDifferenceFunctionType::RadiusType RadiusType

Public Member Functions

virtual const char * GetClassName () const
 itkStaticConstMacro (ImageDimension, unsigned int, Superclass::ImageDimension)
void SetNormalFunction (NormalFunctionType *nf)
virtual void SetMaxIteration (unsigned int _arg)
virtual unsigned int GetMaxIteration ()
virtual void SetIsoLevelLow (NodeValueType _arg)
virtual NodeValueType GetIsoLevelLow ()
virtual void SetIsoLevelHigh (NodeValueType _arg)
virtual NodeValueType GetIsoLevelHigh ()
virtual void SetMinVectorNorm (NodeValueType _arg)
virtual NodeValueType GetMinVectorNorm ()
virtual void SetUnsharpMaskingFlag (bool _arg)
virtual bool GetUnsharpMaskingFlag ()
virtual void SetUnsharpMaskingWeight (NodeValueType _arg)
virtual NodeValueType GetUnsharpMaskingWeight ()
virtual bool Halt ()

Static Public Member Functions

Pointer New ()

Protected Member Functions

 ImplicitManifoldNormalVectorFilter ()
 ~ImplicitManifoldNormalVectorFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
virtual void Initialize ()
void SetNormalBand ()
void InitializeNormalBandNode (NormalBandNodeType *node, const InputImageIteratorType &it)
virtual void CopyInputToOutput ()
virtual NormalVectorType DataConstraint (const NormalVectorType &data) const
virtual void PostProcessOutput ()

Detailed Description

template<class TInputImage, class TSparseOutputImage>
class itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >

This class implements the filter for computing the normal vectors from a scalar implicit function (i.e. a levelset image) and processing them.

This is a ready-to-use class for filtering normal vectors of an implicit manifold image. The normal vectors of the input image are computed and processed in a band where the values of the input image fall in the region [IsoLevelLow, IsoLevelHigh]. The processing is done by m_NormalFunction. This class also defines a Halt method which uses the iteration counter and the parameter m_MaxIteration to determine when to stop the processing.
INPUTS
The input is a scalar image. Even though this can be any scalar image, this filter class is intended to work with the image of an implicit function. One such example is the output of the SparseFieldLevelSetImageFilter class.
OUTPUTS
The output is a sparse image. The m_Data member variables of the nodes of the sparse image will contain the filtered output normal vectors. The sparse image has valid node pointers only in the band [IsoLevelLow, IsoLevelHigh]. Pixels of the sparse image outside this band will be null pointers.
PARAMETERS
IsoLevelLow and IsoLevelHigh define the working band for this filter. Pixels of the input scalar image whose values fall between these low and high limits will be operated on. MaxIteration determines the number of iterations this filter will perform. (Default is 25) The MinVectorNorm parameter determines the minumum vector norm allowed (to avoid divide by 0). The default for MinVectorNorm is 10^-6 which is designed to work with an input image of floats. This value can be lowered to 10^-12 if the input image is doubles.
IMPORTANT
The TSparseOutputImage template parameter must be a sparse image templated over a NodeType which at least has the following members: m_Data, m_InputData, m_Update and m_MAnifoldNormal. Depending on the Function object being used it might need other members. For instance, NormalVectorDiffusionFunction will also require that the NodeType has the following additional members: m_Flux.

Definition at line 71 of file itkImplicitManifoldNormalVectorFilter.h.


Member Typedef Documentation

template<class TInputImage, class TSparseOutputImage>
typedef SmartPointer<const Self> itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::ConstPointer
 

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 81 of file itkImplicitManifoldNormalVectorFilter.h.

template<class TInputImage, class TSparseOutputImage>
typedef Superclass::FiniteDifferenceFunctionType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::FiniteDifferenceFunctionType
 

The value type of the time step. This is distinct from PixelType because PixelType may often be a vector value, while the TimeStep is a scalar value.

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 99 of file itkImplicitManifoldNormalVectorFilter.h.

template<class TInputImage, class TSparseOutputImage>
typedef Superclass::IndexType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::IndexType
 

Typedefs from the sparse output image type.

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 95 of file itkImplicitManifoldNormalVectorFilter.h.

template<class TInputImage, class TSparseOutputImage>
typedef ConstNeighborhoodIterator<InputImageType> itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::InputImageIteratorType
 

The iterator for the input image. Definition at line 105 of file itkImplicitManifoldNormalVectorFilter.h.

Referenced by itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::~ImplicitManifoldNormalVectorFilter().

template<class TInputImage, class TSparseOutputImage>
typedef Superclass::InputImageType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::InputImageType
 

Typedefs from the superclass

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 94 of file itkImplicitManifoldNormalVectorFilter.h.

template<class TInputImage, class TSparseOutputImage>
typedef Superclass::NodeListType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::NodeListType
 

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 102 of file itkImplicitManifoldNormalVectorFilter.h.

template<class TInputImage, class TSparseOutputImage>
typedef Superclass::NodeValueType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::NodeValueType
 

The basic scalar variable type used in OutputNodeType. Expected to be float or double. If NodeDataType is a scalar, then this is the same type as that.

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 97 of file itkImplicitManifoldNormalVectorFilter.h.

Referenced by itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::CopyInputToOutput().

template<class TInputImage, class TSparseOutputImage>
typedef Superclass::OutputNodeType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::NormalBandNodeType
 

Definition at line 101 of file itkImplicitManifoldNormalVectorFilter.h.

Referenced by itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::~ImplicitManifoldNormalVectorFilter().

template<class TInputImage, class TSparseOutputImage>
typedef NormalVectorFunctionBase<SparseOutputImageType> itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::NormalFunctionType
 

This is the finite difference function type for processing the normal vectors Definition at line 109 of file itkImplicitManifoldNormalVectorFilter.h.

Referenced by itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::CopyInputToOutput().

template<class TInputImage, class TSparseOutputImage>
typedef Superclass::NodeDataType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::NormalVectorType
 

Definition at line 96 of file itkImplicitManifoldNormalVectorFilter.h.

Referenced by itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::CopyInputToOutput().

template<class TInputImage, class TSparseOutputImage>
typedef SmartPointer<Self> itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::Pointer
 

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 80 of file itkImplicitManifoldNormalVectorFilter.h.

template<class TInputImage, class TSparseOutputImage>
typedef FiniteDifferenceFunctionType::RadiusType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::RadiusType
 

This is the radius type for the image neigborhoods. Definition at line 112 of file itkImplicitManifoldNormalVectorFilter.h.

Referenced by itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::CopyInputToOutput().

template<class TInputImage, class TSparseOutputImage>
typedef ImplicitManifoldNormalVectorFilter itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::Self
 

Standard class typedef

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 77 of file itkImplicitManifoldNormalVectorFilter.h.

Referenced by itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::CopyInputToOutput().

template<class TInputImage, class TSparseOutputImage>
typedef Superclass::SparseOutputImageType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::SparseOutputImageType
 

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 100 of file itkImplicitManifoldNormalVectorFilter.h.

template<class TInputImage, class TSparseOutputImage>
typedef FiniteDifferenceSparseImageFilter<TInputImage, TSparseOutputImage> itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::Superclass
 

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 79 of file itkImplicitManifoldNormalVectorFilter.h.


Constructor & Destructor Documentation

template<class TInputImage, class TSparseOutputImage>
itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::ImplicitManifoldNormalVectorFilter  )  [protected]
 

template<class TInputImage, class TSparseOutputImage>
itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::~ImplicitManifoldNormalVectorFilter  )  [inline, protected]
 

Definition at line 132 of file itkImplicitManifoldNormalVectorFilter.h.

References itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::InputImageIteratorType, and itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::NormalBandNodeType.


Member Function Documentation

template<class TInputImage, class TSparseOutputImage>
virtual void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::CopyInputToOutput  )  [inline, protected, virtual]
 

This function does nothing. The output initialization is handled by Initialize.

Implements itk::FiniteDifferenceImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 147 of file itkImplicitManifoldNormalVectorFilter.h.

References itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::NodeValueType, itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::NormalFunctionType, itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::NormalVectorType, itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::RadiusType, and itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::Self.

template<class TInputImage, class TSparseOutputImage>
virtual NormalVectorType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::DataConstraint const NormalVectorType data  )  const [inline, protected, virtual]
 

This function implements the unit norm constraint for normal vectors. Definition at line 181 of file itkImplicitManifoldNormalVectorFilter.h.

template<class TInputImage, class TSparseOutputImage>
virtual const char* itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::GetClassName  )  const [virtual]
 

Run-time type information (and related methods)

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

template<class TInputImage, class TSparseOutputImage>
virtual NodeValueType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::GetIsoLevelHigh  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual NodeValueType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::GetIsoLevelLow  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual unsigned int itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::GetMaxIteration  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual NodeValueType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::GetMinVectorNorm  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual bool itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::GetUnsharpMaskingFlag  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual NodeValueType itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::GetUnsharpMaskingWeight  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual bool itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::Halt  )  [inline, virtual]
 

This is the stopping criterion function used in the iterative finite difference scheme.

Reimplemented from itk::FiniteDifferenceImageFilter< TInputImage, TSparseOutputImage >.

Definition at line 194 of file itkImplicitManifoldNormalVectorFilter.h.

References itk::FiniteDifferenceImageFilter< TInputImage, TSparseOutputImage >::GetElapsedIterations().

template<class TInputImage, class TSparseOutputImage>
virtual void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::Initialize  )  [protected, virtual]
 

This calls SetNormalBand to create the band of normals to process.

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

template<class TInputImage, class TSparseOutputImage>
void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::InitializeNormalBandNode NormalBandNodeType node,
const InputImageIteratorType it
[protected]
 

This function precomputes information for normal vector processing .

template<class TInputImage, class TSparseOutputImage>
itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
Superclass::ImageDimension 
 

Standard get dimension macro.

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

template<class TInputImage, class TSparseOutputImage>
Pointer itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::New  )  [static]
 

Standard New macro.

Reimplemented from itk::Object.

template<class TInputImage, class TSparseOutputImage>
virtual void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::PostProcessOutput  )  [protected, virtual]
 

This function implements unsharp masking which is turned ON/OFF by the UnsharpMaskingFlag and controlled by the UnsharpMaskingWeight parameters.

Reimplemented from itk::FiniteDifferenceImageFilter< TInputImage, TSparseOutputImage >.

template<class TInputImage, class TSparseOutputImage>
void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::PrintSelf std::ostream &  os,
Indent  indent
const [protected, virtual]
 

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::FiniteDifferenceSparseImageFilter< TInputImage, TSparseOutputImage >.

template<class TInputImage, class TSparseOutputImage>
virtual void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::SetIsoLevelHigh NodeValueType  _arg  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::SetIsoLevelLow NodeValueType  _arg  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::SetMaxIteration unsigned int  _arg  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::SetMinVectorNorm NodeValueType  _arg  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::SetNormalBand  )  [protected]
 

This function sets the band for normal vector processing.

template<class TInputImage, class TSparseOutputImage>
void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::SetNormalFunction NormalFunctionType nf  ) 
 

This method is used to set the finite difference function.

template<class TInputImage, class TSparseOutputImage>
virtual void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::SetUnsharpMaskingFlag bool  _arg  )  [virtual]
 

template<class TInputImage, class TSparseOutputImage>
virtual void itk::ImplicitManifoldNormalVectorFilter< TInputImage, TSparseOutputImage >::SetUnsharpMaskingWeight NodeValueType  _arg  )  [virtual]
 


The documentation for this class was generated from the following file:
Generated at Sun Apr 1 02:55:29 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000