#include <itkNeighborhoodOperator.h>
Inheritance diagram for itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >:
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) |
Self & | operator= (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 () |
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.
|
Typedef support for coefficient vector type. Necessary to fix bug in the microsoft VC++ compiler. Reimplemented in itk::AnnulusOperator< TPixel, VDimension, TAllocator >, 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. |
|
Definition at line 138 of file itkNeighborhoodOperator.h. |
|
External support for pixel type Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >. Reimplemented in itk::AnnulusOperator< TPixel, VDimension, TAllocator >, 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. |
|
|
Size object typedef support Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >. Reimplemented in itk::AnnulusOperator< TPixel, VDimension, TAllocator >, and itk::LaplacianOperator< TPixel, VDimension, TAllocator >. Definition at line 73 of file itkNeighborhoodOperator.h. |
|
Slice iterator typedef support Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >. Definition at line 79 of file itkNeighborhoodOperator.h. |
|
|
Constructor. Definition at line 82 of file itkNeighborhoodOperator.h. |
|
Copy constructor Definition at line 86 of file itkNeighborhoodOperator.h. References itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >::Self. |
|
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. |
|
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.
|
|
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.
|
|
A subclass-specific algorithm that positions the coefficients spatially in the operator. Implemented in itk::AnnulusOperator< TPixel, VDimension, TAllocator >, 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 >. |
|
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. |
|
Reverses the direction of all axes of the operator by reversing the order of the coefficients. |
|
A subclass-specific algorithm that computes the coefficients of the operator. Implemented in itk::AnnulusOperator< TPixel, VDimension, TAllocator >, 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 >. |
|
Returns the direction (dimension number) of a directional operator. Definition at line 104 of file itkNeighborhoodOperator.h. |
|
Initializes all the coefficients in the neighborhood to zero values Definition at line 164 of file itkNeighborhoodOperator.h. |
|
|
Prints some debugging information. Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >. Reimplemented in itk::AnnulusOperator< TPixel, VDimension, TAllocator >, 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(). |
|
Multiplies all of the coefficients of the kernel by a single scalar value. |
|
Sets the dimensional direction of a directional operator. Definition at line 100 of file itkNeighborhoodOperator.h. |