#include <itkNeighborhoodOperator.h>
Inheritance diagram for itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >:


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 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 | |
| ConstIterator | Begin () const |
| Iterator | Begin () |
| virtual void | CreateDirectional () |
| virtual void | CreateToRadius (const unsigned long) |
| virtual void | CreateToRadius (const SizeType &) |
| ConstIterator | End () const |
| STL style iterator support *Iterator | End () |
| virtual void | FlipAxes () |
| const AllocatorType & | GetBufferReference () const |
| Returns a reference to the data buffer structure *AllocatorType & | GetBufferReference () |
| unsigned int | GetCenterNeighborhoodIndex () const |
| TPixel | GetCenterValue () const |
| unsigned long | GetDirection () const |
| TPixel & | GetElement (unsigned int i) |
| 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 |
| Assignment | operator.*/Self &operator= (const Self &orig) |
| bool | operator== (const Self &other) const |
| const TPixel & | operator[] (const OffsetType &o) const |
| Get pixel value by offset *TPixel & | operator[] (const OffsetType &o) |
| const TPixel & | operator[] (unsigned int i) const |
| Pass through data access methods to the buffer *TPixel & | operator[] (unsigned int i) |
| void | Print (std::ostream &os) const |
| Prints some debugging information *virtual void | PrintSelf (std::ostream &os, Indent i) const |
| void | ScaleCoefficients (PixelRealType) |
| void | SetDirection (const unsigned long &direction) |
| void | SetRadius (const unsigned long) |
| Sets the radius for the neighborhood Overloaded to support an unsigned *long array *void | SetRadius (const unsigned long *rad) |
| void | SetRadius (const SizeType &) |
| unsigned int | Size () const |
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 |
| Initializes all the coefficients in the neighborhood to zero values *void | InitializeToZero () |
| Sets the length along each dimension *void | SetSize () |
|
|||||
|
External support for allocator type. Reimplemented in itk::BinaryBallStructuringElement< TPixel, VDimension, TAllocator >, and itk::BinaryCrossStructuringElement< TPixel, VDimension, TAllocator >. Definition at line 61 of file itkNeighborhood.h. |
|
|||||
|
Typedef support for coefficient vector type. Necessary to fix bug in the microsoft VC++ compiler. Reimplemented in itk::BackwardDifferenceOperator< TPixel, TDimension, 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. |
|
|||||
|
|||||
|
Iterator typedef support. Note the naming is intentional, i.e., iterator and ::const_iterator, because the allocator may be a vnl object or other type, which uses this form. Reimplemented in itk::BinaryBallStructuringElement< TPixel, VDimension, TAllocator >, itk::BinaryCrossStructuringElement< TPixel, VDimension, TAllocator >, itk::ConstNeighborhoodIterator< TImage, TBoundaryCondition >, itk::NeighborhoodIterator, and itk::ConstNeighborhoodIterator< FixedImageType >. Definition at line 72 of file itkNeighborhood.h. |
|
|||||
|
Offset type used to reference neighbor locations Reimplemented in itk::AnnulusOperator< TPixel, TDimension, TAllocator >, itk::BinaryCrossStructuringElement< TPixel, VDimension, TAllocator >, itk::ConstNeighborhoodIterator< TImage, TBoundaryCondition >, itk::NeighborhoodIterator, and itk::ConstNeighborhoodIterator< FixedImageType >. Definition at line 83 of file itkNeighborhood.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, TDimension, TAllocator >, itk::BackwardDifferenceOperator< TPixel, TDimension, 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. |
|
|||||
|
Radius typedef support. Reimplemented in itk::BinaryBallStructuringElement< TPixel, VDimension, TAllocator >, itk::BinaryCrossStructuringElement< TPixel, VDimension, TAllocator >, itk::ConstNeighborhoodIterator< TImage, TBoundaryCondition >, itk::NeighborhoodIterator, and itk::ConstNeighborhoodIterator< FixedImageType >. Definition at line 80 of file itkNeighborhood.h. |
|
|||||
|
Standard class typedefs. Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >. Reimplemented in itk::AnnulusOperator< TPixel, TDimension, TAllocator >, itk::BackwardDifferenceOperator< TPixel, TDimension, 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. |
|
|||||
|
Size object typedef support Reimplemented from itk::Neighborhood< TPixel, VDimension, TAllocator >. Reimplemented in itk::AnnulusOperator< TPixel, TDimension, 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. |
|
||||||||||
|
Allocates the neighborhood's memory buffer. Definition at line 228 of file itkNeighborhood.h. |
|
||||||||||
|
Definition at line 148 of file itkNeighborhood.h. |
|
||||||||||
|
Definition at line 144 of file itkNeighborhood.h. |
|
|||||||||
|
Fills entries into the offset lookup table. Called once on initialization. |
|
|||||||||
|
Computes the entries for the stride table |
|
|||||||||
|
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.
|
|
||||||||||
|
Definition at line 146 of file itkNeighborhood.h. |
|
||||||||||
|
Definition at line 142 of file itkNeighborhood.h. |
|
||||||||||
|
A subclass-specific algorithm that positions the coefficients spatially in the operator. Implemented in itk::AnnulusOperator< TPixel, TDimension, TAllocator >, itk::BackwardDifferenceOperator< TPixel, TDimension, 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, TDimension, TAllocator >, itk::BackwardDifferenceOperator< TPixel, TDimension, 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 195 of file itkNeighborhood.h. |
|
|||||||||
|
Definition at line 193 of file itkNeighborhood.h. |
|
|||||||||
|
Definition at line 213 of file itkNeighborhood.h. |
|
|||||||||
|
Returns the element at the center of the neighborhood. Definition at line 166 of file itkNeighborhood.h. |
|
|||||||||
|
Returns the direction (dimension number) of a directional operator. Definition at line 104 of file itkNeighborhoodOperator.h. |
|
||||||||||
|
Definition at line 161 of file itkNeighborhood.h. |
|
||||||||||
|
|
|
||||||||||
|
Returns the itk::Offset from the center of the Neighborhood to the requested neighbor index. Definition at line 208 of file itkNeighborhood.h. |
|
||||||||||
|
Returns the radius of the neighborhood along a specified dimension. Definition at line 123 of file itkNeighborhood.h. |
|
||||||||||
|
Returns the radius of the neighborhood. Definition at line 118 of file itkNeighborhood.h. |
|
||||||||||
|
Returns the size (total length of sides) of the neighborhood. Definition at line 132 of file itkNeighborhood.h. |
|
||||||||||
|
Returns the size (total length) of the neighborhood along a specified dimension. Definition at line 128 of file itkNeighborhood.h. |
|
||||||||||
|
|
|
||||||||||
|
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. |
|
|||||||||
|
Definition at line 164 of file itkNeighborhoodOperator.h. |
|
||||||||||||||||||||
|
External support for dimensionality. Reimplemented in itk::BinaryBallStructuringElement< TPixel, VDimension, TAllocator >, and itk::BinaryCrossStructuringElement< TPixel, VDimension, TAllocator >. |
|
||||||||||
|
Not Equal operator. Reimplemented in itk::ConstNeighborhoodIterator< TImage, TBoundaryCondition >, and itk::ConstNeighborhoodIterator< FixedImageType >. Definition at line 110 of file itkNeighborhood.h. |
|
||||||||||
|
Definition at line 91 of file itkNeighborhoodOperator.h. |
|
||||||||||
|
Comparison operator. Reimplemented in itk::ConstNeighborhoodIterator< TImage, TBoundaryCondition >, and itk::ConstNeighborhoodIterator< FixedImageType >. Definition at line 102 of file itkNeighborhood.h. |
|
||||||||||
|
Definition at line 202 of file itkNeighborhood.h. |
|
||||||||||
|
Definition at line 200 of file itkNeighborhood.h. |
|
||||||||||
|
Definition at line 159 of file itkNeighborhood.h. |
|
||||||||||
|
Definition at line 157 of file itkNeighborhood.h. |
|
||||||||||
|
Standard itk object method. Definition at line 189 of file itkNeighborhood.h. |
|
||||||||||||||||
|
Standard itk object method. 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. |
|
||||||||||
|
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. |
|
||||||||||
|
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). |
|
||||||||||
|
Definition at line 175 of file itkNeighborhood.h. |
|
||||||||||
|
Sets the radius for the neighborhood, calculates size from the radius, and allocates storage. |
|
|||||||||
|
Definition at line 220 of file itkNeighborhood.h. |
|
||||||||||
|
More STL-style support. Definition at line 153 of file itkNeighborhood.h. Referenced by itk::NeighborhoodInnerProduct< ImageType >::operator()(). |
1.4.2 written by Dimitri van Heesch,
© 1997-2000