ITK  4.2.0
Insight Segmentation and Registration Toolkit
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Private Attributes
itk::NeighborhoodOperator< TPixel, VDimension, TAllocator > Class Template Reference

#include <itkNeighborhoodOperator.h>

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

List of all members.

Public Types

typedef NumericTraits< TPixel >
::RealType 
PixelRealType
typedef TPixel PixelType
typedef NeighborhoodOperator Self
typedef Superclass::SizeType SizeType
typedef SliceIterator< TPixel,
Self
SliceIteratorType
typedef Neighborhood< TPixel,
VDimension, TAllocator > 
Superclass
- Public Types inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
typedef TAllocator AllocatorType
typedef
AllocatorType::const_iterator 
ConstIterator
typedef unsigned int DimensionValueType
typedef AllocatorType::iterator Iterator
typedef SizeValueType NeighborIndexType
typedef Offset< VDimension > OffsetType
typedef SizeType::SizeValueType SizeValueType

Public Member Functions

virtual void CreateDirectional ()
virtual void CreateToRadius (const SizeType &)
virtual void CreateToRadius (const SizeValueType)
virtual void FlipAxes ()
unsigned long GetDirection () const
 NeighborhoodOperator ()
 NeighborhoodOperator (const Self &orig)
void ScaleCoefficients (PixelRealType)
void SetDirection (const unsigned long &direction)
Selfoperator= (const Self &orig)
virtual void PrintSelf (std::ostream &os, Indent i) const
- Public Member Functions inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
NeighborIndexType GetCenterNeighborhoodIndex () const
TPixel GetCenterValue () const
virtual NeighborIndexType GetNeighborhoodIndex (const OffsetType &) const
OffsetType GetOffset (NeighborIndexType i) const
const SizeType GetRadius () const
SizeValueType GetRadius (DimensionValueType n) const
SizeValueType GetSize (DimensionValueType n) const
SizeType GetSize () const
std::slice GetSlice (unsigned int) const
OffsetValueType GetStride (DimensionValueType axis) const
 Neighborhood (const Self &other)
bool operator!= (const Self &other) const
bool operator== (const Self &other) const
void Print (std::ostream &os) const
void SetRadius (const SizeType &)
void SetRadius (const SizeValueType *rad)
void SetRadius (const SizeValueType)
NeighborIndexType Size () const
virtual ~Neighborhood ()
 Neighborhood ()
Iterator End ()
Iterator Begin ()
ConstIterator End () const
ConstIterator Begin () const
TPixel & operator[] (NeighborIndexType i)
const TPixel & operator[] (NeighborIndexType i) const
TPixel & GetElement (NeighborIndexType i)
AllocatorTypeGetBufferReference ()
const AllocatorTypeGetBufferReference () const
TPixel & operator[] (const OffsetType &o)
const TPixel & operator[] (const OffsetType &o) const

Protected Types

typedef std::vector< double > CoefficientVector

Protected Member Functions

virtual void Fill (const CoefficientVector &)=0
virtual void FillCenteredDirectional (const CoefficientVector &)
virtual CoefficientVector GenerateCoefficients ()=0
void InitializeToZero ()
- Protected Member Functions inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
virtual void Allocate (NeighborIndexType i)
virtual void ComputeNeighborhoodOffsetTable ()
virtual void ComputeNeighborhoodStrideTable ()
void SetSize ()

Private Attributes

unsigned long m_Direction

Additional Inherited Members

- Public Attributes inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
typedef::itk::Size< VDimension > RadiusType
- Static Public Attributes inherited from itk::Neighborhood< TPixel, VDimension, TAllocator >
static const unsigned int NeighborhoodDimension = VDimension

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) GenerateCoefficients – the algorithm that computes the scalar coefficients of the operator.

(2) Fill – 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 66 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
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, 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, 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 81 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 84 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 88 of file itkNeighborhoodOperator.h.


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

Reimplemented in itk::SobelOperator< TPixel, VDimension, TAllocator >, itk::SobelOperator< FixedGradientPixelType, itkGetStaticConstMacro(FixedImageDimension) >, and itk::SobelOperator< MovedGradientPixelType, itkGetStaticConstMacro(MovedImageDimension) >.

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 >::CreateToRadius ( const SizeValueType  )
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 >::Fill ( const CoefficientVector )
protectedpure virtual
template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator< TPixel >>
virtual void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::FillCenteredDirectional ( const CoefficientVector )
protectedvirtual

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 ( )
protectedpure virtual
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 106 of file itkNeighborhoodOperator.h.

template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator< TPixel >>
void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::InitializeToZero ( )
inlineprotected

Initializes all the coefficients in the neighborhood to zero values

Definition at line 167 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
template<class TPixel, unsigned int VDimension, class TAllocator = NeighborhoodAllocator< TPixel >>
virtual void itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::PrintSelf ( std::ostream &  os,
Indent  i 
) const
inlinevirtual
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 102 of file itkNeighborhoodOperator.h.


Member Data Documentation

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

Direction (dimension number) of the derivative.

Definition at line 178 of file itkNeighborhoodOperator.h.


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