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]

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


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.


Public Types

typedef TAllocator AllocatorType
typedef
AllocatorType::const_iterator 
ConstIterator
typedef AllocatorType::iterator Iterator
typedef Offset< VDimension > OffsetType
typedef NumericTraits< TPixel >
::RealType 
PixelRealType
typedef TPixel PixelType
typedef ::itk::Size< VDimension > RadiusType
typedef NeighborhoodOperator Self
typedef Superclass::SizeType SizeType
typedef SizeType::SizeValueType SizeValueType
typedef SliceIterator< TPixel,
Self
SliceIteratorType
typedef Neighborhood< TPixel,
VDimension, TAllocator > 
Superclass

Public Member Functions

virtual void CreateDirectional ()
virtual void CreateToRadius (const unsigned long)
virtual void CreateToRadius (const SizeType &)
virtual void FlipAxes ()
unsigned int GetCenterNeighborhoodIndex () const
TPixel GetCenterValue () const
unsigned long GetDirection () const
virtual unsigned int GetNeighborhoodIndex (const OffsetType &) const
OffsetType GetOffset (unsigned int i) const
unsigned long GetRadius (const unsigned long n) const
const SizeType GetRadius () const
SizeType GetSize () const
unsigned long GetSize (const unsigned long n) const
std::slice GetSlice (unsigned int) const
unsigned GetStride (const unsigned axis) const
 itkStaticConstMacro (NeighborhoodDimension, unsigned int, VDimension)
 NeighborhoodOperator (const Self &orig)
 NeighborhoodOperator ()
bool operator!= (const Self &other) const
bool operator== (const Self &other) const
void Print (std::ostream &os) const
void ScaleCoefficients (PixelRealType)
void SetDirection (const unsigned long &direction)
void SetRadius (const unsigned long)
void SetRadius (const SizeType &)
unsigned int Size () const
ConstIterator Begin () const
Iterator Begin ()
ConstIterator End () const
Iterator End ()
const AllocatorTypeGetBufferReference () const
AllocatorTypeGetBufferReference ()
TPixel & GetElement (unsigned int i)
const TPixel & operator[] (unsigned int i) const
TPixel & operator[] (unsigned int i)
Selfoperator= (const Self &orig)
const TPixel & operator[] (const OffsetType &o) const
TPixel & operator[] (const OffsetType &o)
virtual void PrintSelf (std::ostream &os, Indent i) const
void SetRadius (const unsigned long *rad)

Protected Types

typedef std::vector< double > CoefficientVector

Protected Member Functions

virtual void Allocate (unsigned int i)
virtual void ComputeNeighborhoodOffsetTable ()
virtual void ComputeNeighborhoodStrideTable ()
virtual void Fill (const CoefficientVector &)=0
virtual void FillCenteredDirectional (const CoefficientVector &)
virtual CoefficientVector GenerateCoefficients ()=0
void InitializeToZero ()
void SetSize ()

Member Typedef Documentation

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef TAllocator itk::Neighborhood< TPixel, VDimension, TAllocator >::AllocatorType [inherited]

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

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef AllocatorType::const_iterator itk::Neighborhood< TPixel, VDimension, TAllocator >::ConstIterator [inherited]

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef AllocatorType::iterator itk::Neighborhood< TPixel, VDimension, TAllocator >::Iterator [inherited]

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef Offset<VDimension> itk::Neighborhood< TPixel, VDimension, TAllocator >::OffsetType [inherited]

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

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

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef ::itk::Size<VDimension> itk::Neighborhood< TPixel, VDimension, TAllocator >::RadiusType [inherited]

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

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

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
typedef SizeType::SizeValueType itk::Neighborhood< TPixel, VDimension, TAllocator >::SizeValueType [inherited]

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


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.


Member Function Documentation

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::Neighborhood< TPixel, VDimension, TAllocator >::Allocate ( unsigned int  i  )  [inline, protected, virtual, inherited]

Allocates the neighborhood's memory buffer.

Definition at line 232 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
ConstIterator itk::Neighborhood< TPixel, VDimension, TAllocator >::Begin ( void   )  const [inline, inherited]

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
Iterator itk::Neighborhood< TPixel, VDimension, TAllocator >::Begin ( void   )  [inline, inherited]

STL-style iterator support.

Reimplemented in itk::ShapedNeighborhoodIterator< TImage, TBoundaryCondition >, and itk::ShapedNeighborhoodIterator< TImage >.

Definition at line 144 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::Neighborhood< TPixel, VDimension, TAllocator >::ComputeNeighborhoodOffsetTable (  )  [protected, virtual, inherited]

Fills entries into the offset lookup table. Called once on initialization.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual void itk::Neighborhood< TPixel, VDimension, TAllocator >::ComputeNeighborhoodStrideTable (  )  [protected, virtual, inherited]

Computes the entries for the stride table

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 = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
ConstIterator itk::Neighborhood< TPixel, VDimension, TAllocator >::End ( void   )  const [inline, inherited]

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
Iterator itk::Neighborhood< TPixel, VDimension, TAllocator >::End ( void   )  [inline, inherited]

STL-style iterator support.

Reimplemented in itk::ShapedNeighborhoodIterator< TImage, TBoundaryCondition >, and itk::ShapedNeighborhoodIterator< TImage >.

Definition at line 142 of file itkNeighborhood.h.

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.

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]

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
const AllocatorType& itk::Neighborhood< TPixel, VDimension, TAllocator >::GetBufferReference (  )  const [inline, inherited]

Returns a reference to the data buffer structure.

Definition at line 195 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
AllocatorType& itk::Neighborhood< TPixel, VDimension, TAllocator >::GetBufferReference (  )  [inline, inherited]

Returns a reference to the data buffer structure.

Definition at line 193 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
unsigned int itk::Neighborhood< TPixel, VDimension, TAllocator >::GetCenterNeighborhoodIndex (  )  const [inline, inherited]

Definition at line 213 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
TPixel itk::Neighborhood< TPixel, VDimension, TAllocator >::GetCenterValue (  )  const [inline, inherited]

Returns the element at the center of the neighborhood.

Definition at line 166 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator<TPixel>>
unsigned long itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::GetDirection ( void   )  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 = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
TPixel& itk::Neighborhood< TPixel, VDimension, TAllocator >::GetElement ( unsigned int  i  )  [inline, inherited]

Pass-through data access methods to the buffer.

Definition at line 161 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
virtual unsigned int itk::Neighborhood< TPixel, VDimension, TAllocator >::GetNeighborhoodIndex ( const OffsetType  )  const [virtual, inherited]

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
OffsetType itk::Neighborhood< TPixel, VDimension, TAllocator >::GetOffset ( unsigned int  i  )  const [inline, inherited]

Returns the itk::Offset from the center of the Neighborhood to the requested neighbor index.

Definition at line 208 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
unsigned long itk::Neighborhood< TPixel, VDimension, TAllocator >::GetRadius ( const unsigned long  n  )  const [inline, inherited]

Returns the radius of the neighborhood along a specified dimension.

Definition at line 123 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
const SizeType itk::Neighborhood< TPixel, VDimension, TAllocator >::GetRadius ( void   )  const [inline, inherited]

Returns the radius of the neighborhood.

Definition at line 118 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
SizeType itk::Neighborhood< TPixel, VDimension, TAllocator >::GetSize ( void   )  const [inline, inherited]

Returns the size (total length of sides) of the neighborhood.

Definition at line 132 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
unsigned long itk::Neighborhood< TPixel, VDimension, TAllocator >::GetSize ( const unsigned long  n  )  const [inline, inherited]

Returns the size (total length) of the neighborhood along a specified dimension.

Definition at line 128 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
std::slice itk::Neighborhood< TPixel, VDimension, TAllocator >::GetSlice ( unsigned  int  )  const [inherited]

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
unsigned itk::Neighborhood< TPixel, VDimension, TAllocator >::GetStride ( const unsigned  axis  )  const [inline, inherited]

Returns the stride length for the specified dimension. Stride length is the number of pixels between adjacent pixels along the given dimension.

Definition at line 138 of file itkNeighborhood.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 = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
itk::Neighborhood< TPixel, VDimension, TAllocator >::itkStaticConstMacro ( NeighborhoodDimension  ,
unsigned  int,
VDimension   
) [inherited]

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
bool itk::Neighborhood< TPixel, VDimension, TAllocator >::operator!= ( const Self other  )  const [inline, inherited]

Not Equal operator.

Definition at line 110 of file itkNeighborhood.h.

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

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
bool itk::Neighborhood< TPixel, VDimension, TAllocator >::operator== ( const Self other  )  const [inline, inherited]

Comparison operator.

Definition at line 102 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
const TPixel& itk::Neighborhood< TPixel, VDimension, TAllocator >::operator[] ( const OffsetType o  )  const [inline, inherited]

Get pixel value by offset

Definition at line 202 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
TPixel& itk::Neighborhood< TPixel, VDimension, TAllocator >::operator[] ( const OffsetType o  )  [inline, inherited]

Get pixel value by offset

Definition at line 200 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
const TPixel& itk::Neighborhood< TPixel, VDimension, TAllocator >::operator[] ( unsigned int  i  )  const [inline, inherited]

Pass-through data access methods to the buffer.

Definition at line 159 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
TPixel& itk::Neighborhood< TPixel, VDimension, TAllocator >::operator[] ( unsigned int  i  )  [inline, inherited]

Pass-through data access methods to the buffer.

Definition at line 157 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
void itk::Neighborhood< TPixel, VDimension, TAllocator >::Print ( std::ostream &  os  )  const [inline, inherited]

Standard itk object method.

Definition at line 189 of file itkNeighborhood.h.

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]

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.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
void itk::Neighborhood< TPixel, VDimension, TAllocator >::SetRadius ( const unsigned  long  )  [inherited]

Overloads SetRadius to allow a single long integer argument that is used as the radius of all the dimensions of the Neighborhood (resulting in a "square" neighborhood).

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
void itk::Neighborhood< TPixel, VDimension, TAllocator >::SetRadius ( const unsigned long *  rad  )  [inline, inherited]

Sets the radius for the neighborhood. Overloaded to support an unsigned long array.

Definition at line 175 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
void itk::Neighborhood< TPixel, VDimension, TAllocator >::SetRadius ( const SizeType  )  [inherited]

Sets the radius for the neighborhood, calculates size from the radius, and allocates storage.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
void itk::Neighborhood< TPixel, VDimension, TAllocator >::SetSize (  )  [inline, protected, inherited]

Sets the length along each dimension.

Definition at line 222 of file itkNeighborhood.h.

template<class TPixel, unsigned int VDimension = 2, class TAllocator = NeighborhoodAllocator<TPixel>>
unsigned int itk::Neighborhood< TPixel, VDimension, TAllocator >::Size ( void   )  const [inline, inherited]

More STL-style support.

Definition at line 153 of file itkNeighborhood.h.

Referenced by itk::NeighborhoodInnerProduct< Superclass::ImageType >::operator()().


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

Generated at Sat Feb 28 17:09:29 2009 for ITK by doxygen 1.5.6 written by Dimitri van Heesch, © 1997-2000