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

itk::NeighborhoodOperator< TPixel, VDimension, TAllocator > Class Template Reference
[Operators]

Virtual class that defines a common interface to all neighborhood operator subtypes. More...

#include <itkNeighborhoodOperator.h>

Inheritance diagram for itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >:

Inheritance graph
[legend]
Collaboration diagram for itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef NeighborhoodOperator Self
typedef Neighborhood< TPixel,
VDimension, TAllocator > 
Superclass
typedef Superclass::SizeType SizeType
typedef TPixel PixelType
typedef SliceIterator< TPixel,
Self
SliceIteratorType
typedef NumericTraits< TPixel
>::RealType 
PixelRealType

Public Member Functions

 NeighborhoodOperator ()
 NeighborhoodOperator (const Self &orig)
void SetDirection (const unsigned long &direction)
unsigned long GetDirection () const
virtual void CreateDirectional ()
virtual void CreateToRadius (const SizeType &)
virtual void CreateToRadius (const unsigned long)
virtual void FlipAxes ()
void ScaleCoefficients (PixelRealType)
Selfoperator= (const Self &orig)
virtual void PrintSelf (std::ostream &os, Indent i) const

Protected Types

typedef std::vector< double > CoefficientVector

Protected Member Functions

virtual CoefficientVector GenerateCoefficients ()=0
virtual void Fill (const CoefficientVector &)=0
virtual void FillCenteredDirectional (const CoefficientVector &)
void InitializeToZero ()

Detailed Description

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
class itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >

Virtual class that defines a common interface to all neighborhood operator subtypes.

A NeighborhoodOperator is a set of pixel values that can be applied to a Neighborhood to perform a user-defined operation (i.e. convolution kernel, morphological structuring element). A NeighborhoodOperator is itself a specialized Neighborhood, with functionality to generate its coefficients according to user-defined parameters. Because the operator is a subclass of Neighborhood, it is a valid operand in any of the operations defined on the Neighborhood object (convolution, inner product, etc.).

NeighborhoodOperator is a pure virtual object that must be subclassed to be used. A user's subclass must implement two methods:

(1) GenerateScalarCoefficients -- the algorithm that computes the scalar coefficients of the operator.

(2) ScalarFill -- the algorithm that places the scalar coefficients into the memory buffer of the operator (arranges them spatially in the neighborhood).

NeighborhoodOperator supports the concept of a "directional operator." A directional operator is defined in this context to be an operator that is applied along a single dimension. Examples of this type of operator are directional derivatives and the individual, directional components of separable processes such as Gaussian smoothing.

How a NeighborhoodOperator is applied to data is up to the user who defines it. One possible use of an operator would be to take its inner product with a neighborhood of values to produce a scalar result. This process effects convolution when applied to successive neighborhoods across a region of interest in an image.

Definition at line 64 of file itkNeighborhoodOperator.h.


Member Typedef Documentation

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef std::vector<double> itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::CoefficientVector [protected]
 

Typedef support for coefficient vector type. Necessary to fix bug in the microsoft VC++ compiler.

Reimplemented in itk::BackwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::DerivativeOperator< TPixel, VDimension, TAllocator >, itk::ForwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::GaussianOperator< TPixel, VDimension, TAllocator >, and itk::LaplacianOperator< TPixel, VDimension, TAllocator >.

Definition at line 146 of file itkNeighborhoodOperator.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef NumericTraits< TPixel >::RealType itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::PixelRealType
 

Definition at line 138 of file itkNeighborhoodOperator.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef TPixel itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::PixelType
 

External support for pixel type

Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >.

Reimplemented in itk::BackwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::DerivativeOperator< TPixel, VDimension, TAllocator >, itk::ForwardDifferenceOperator< TPixel, VDimension, TAllocator >, and itk::LaplacianOperator< TPixel, VDimension, TAllocator >.

Definition at line 76 of file itkNeighborhoodOperator.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef NeighborhoodOperator itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::Self
 

Standard class typedefs.

Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >.

Reimplemented in itk::BackwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::DerivativeOperator< TPixel, VDimension, TAllocator >, itk::ForwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::GaussianOperator< TPixel, VDimension, TAllocator >, and itk::LaplacianOperator< TPixel, VDimension, TAllocator >.

Definition at line 69 of file itkNeighborhoodOperator.h.

Referenced by itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::NeighborhoodOperator(), and itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::operator=().

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef Superclass::SizeType itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::SizeType
 

Size object typedef support

Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >.

Definition at line 73 of file itkNeighborhoodOperator.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef SliceIterator<TPixel, Self> itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::SliceIteratorType
 

Slice iterator typedef support

Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >.

Definition at line 79 of file itkNeighborhoodOperator.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef Neighborhood<TPixel, VDimension, TAllocator> itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::Superclass
 

Reimplemented in itk::BackwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::DerivativeOperator< TPixel, VDimension, TAllocator >, itk::ForwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::GaussianOperator< TPixel, VDimension, TAllocator >, and itk::LaplacianOperator< TPixel, VDimension, TAllocator >.

Definition at line 70 of file itkNeighborhoodOperator.h.


Constructor & Destructor Documentation

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::NeighborhoodOperator  )  [inline]
 

Constructor. Definition at line 82 of file itkNeighborhoodOperator.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::NeighborhoodOperator const Self orig  )  [inline]
 

Copy constructor Definition at line 86 of file itkNeighborhoodOperator.h.

References itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::m_Direction, and itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::Self.


Member Function Documentation

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::CreateDirectional  )  [virtual]
 

Creates the operator with length only in the specified direction. The radius of the operator will be 0 except along the axis on which the operator will work.

See also:
CreateToRadius

FillCenteredDirectional

SetDirection()

GetDirection()

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::CreateToRadius const unsigned  long  )  [virtual]
 

Creates the operator with a specified radius ("square", same length on each side). The spatial location of the coefficients within the operator is defined by the subclass implementation of the Fill method.

See also:
CreateDirectional

Fill

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::CreateToRadius const SizeType  )  [virtual]
 

Creates the operator with a specified radius. The spatial location of the coefficients within the operator is defined by the subclass implementation of the Fill method.

See also:
CreateDirectional

Fill

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::Fill const CoefficientVector  )  [protected, pure virtual]
 

A subclass-specific algorithm that positions the coefficients spatially in the operator.

Implemented in itk::BackwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::DerivativeOperator< TPixel, VDimension, TAllocator >, itk::ForwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::GaussianOperator< TPixel, VDimension, TAllocator >, and itk::LaplacianOperator< TPixel, VDimension, TAllocator >.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::FillCenteredDirectional const CoefficientVector  )  [protected, virtual]
 

A pre-defined Fill function that can be called by a subclass Fill function to center coefficients along the axis specified by the SetDirection method. Useful for creating directional operators, or centering coefficients in an N-dimensional neighborhood.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::FlipAxes  )  [virtual]
 

Reverses the direction of all axes of the operator by reversing the order of the coefficients.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual CoefficientVector itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::GenerateCoefficients  )  [protected, pure virtual]
 

A subclass-specific algorithm that computes the coefficients of the operator.

Implemented in itk::BackwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::DerivativeOperator< TPixel, VDimension, TAllocator >, itk::ForwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::GaussianOperator< TPixel, VDimension, TAllocator >, and itk::LaplacianOperator< TPixel, VDimension, TAllocator >.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
unsigned long itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::GetDirection  )  const [inline]
 

Returns the direction (dimension number) of a directional operator. Definition at line 104 of file itkNeighborhoodOperator.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::InitializeToZero  )  [inline, protected]
 

Initializes all the coefficients in the neighborhood to zero values Definition at line 164 of file itkNeighborhoodOperator.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
Self& itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::operator= const Self orig  )  [inline]
 

Assignment operator.

Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >.

Reimplemented in itk::DerivativeOperator< TPixel, VDimension, TAllocator >, itk::ForwardDifferenceOperator< TPixel, VDimension, TAllocator >, itk::GaussianOperator< TPixel, VDimension, TAllocator >, and itk::LaplacianOperator< TPixel, VDimension, TAllocator >.

Definition at line 91 of file itkNeighborhoodOperator.h.

References itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::m_Direction, and itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::Self.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::PrintSelf std::ostream &  os,
Indent  i
const [inline, virtual]
 

Prints some debugging information.

Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >.

Reimplemented in itk::DerivativeOperator< TPixel, VDimension, TAllocator >, itk::GaussianOperator< TPixel, VDimension, TAllocator >, and itk::LaplacianOperator< TPixel, VDimension, TAllocator >.

Definition at line 130 of file itkNeighborhoodOperator.h.

References itk::Indent::GetNextIndent(), and HardConnectedComponentImageFilter::PrintSelf().

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::ScaleCoefficients PixelRealType   ) 
 

Multiplies all of the coefficients of the kernel by a single scalar value.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::SetDirection const unsigned long &  direction  )  [inline]
 

Sets the dimensional direction of a directional operator. Definition at line 100 of file itkNeighborhoodOperator.h.


The documentation for this class was generated from the following file:
Generated at Sat Mar 31 02:58:26 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000