#include <itkGaussianOperator.h>
Inheritance diagram for itk::GaussianOperator< TPixel, VDimension, TAllocator >:


GaussianOperator can be used to perform Gaussian blurring by taking its inner product with to a Neighborhood (NeighborhooIterator) that is swept across an image region. It is a directional operator. N successive applications oriented along each dimensional direction will effect separable, efficient, N-D Gaussian blurring of an image region.
GaussianOperator takes two parameters:
(1) The floating-point variance of the desired Gaussian function.
(2) The "maximum error" allowed in the discrete Gaussian function. "Maximum errror" is defined as the difference between the area under the discrete Gaussian curve and the area under the continuous Gaussian. Maximum error affects the Gaussian operator size. Care should be taken not to make this value too small relative to the variance lest the operator size become unreasonably large.
References: The Gaussian kernel contained in this operator was described by Tony Lindeberg (Discrete Scale-Space Theory and the Scale-Space Primal Sketch. Dissertation. Royal Institute of Technology, Stockholm, Sweden. May 1991.).
Definition at line 61 of file itkGaussianOperator.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 GaussianOperator | Self |
| typedef Superclass::SizeType | SizeType |
| typedef SizeType::SizeValueType | SizeValueType |
| typedef SliceIterator< TPixel, Self > | SliceIteratorType |
| typedef NeighborhoodOperator< 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 () |
| Copy constructor * | GaussianOperator (const Self &other) |
| GaussianOperator () | |
| 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) |
| double | GetMaximumError () |
| unsigned int | GetMaximumKernelWidth () 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 |
| double | GetVariance () |
| itkStaticConstMacro (NeighborhoodDimension, unsigned int, VDimension) | |
| Assignment | operator */Self &operator= (const Self &other) |
| 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 | SetMaximumError (const double &max_error) |
| void | SetMaximumKernelWidth (unsigned int n) |
| 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 &) |
| void | SetVariance (const double &variance) |
| unsigned int | Size () const |
Protected Types | |
| typedef Superclass::CoefficientVector | CoefficientVector |
Protected Member Functions | |
| virtual void | Allocate (unsigned int i) |
| virtual void | ComputeNeighborhoodOffsetTable () |
| virtual void | ComputeNeighborhoodStrideTable () |
| void | Fill (const CoefficientVector &coeff) |
| virtual void | FillCenteredDirectional (const CoefficientVector &) |
| CoefficientVector | GenerateCoefficients () |
| Initializes all the coefficients in the neighborhood to zero values *void | InitializeToZero () |
| double | ModifiedBesselI (int, double) |
| double | ModifiedBesselI0 (double) |
| double | ModifiedBesselI1 (double) |
| 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 from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >. Definition at line 145 of file itkGaussianOperator.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::NeighborhoodOperator< TPixel, VDimension, TAllocator >. Definition at line 66 of file itkGaussianOperator.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. |
|
|||||
|
Reimplemented from itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >. Definition at line 67 of file itkGaussianOperator.h. |
|
|||||||||
|
Constructor. Definition at line 70 of file itkGaussianOperator.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. |
|
||||||||||
|
Arranges coefficients spatially in the memory buffer. Implements itk::NeighborhoodOperator< TPixel, VDimension, TAllocator >. Definition at line 162 of file itkGaussianOperator.h. |
|
||||||||||
|
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. |
|
|||||||||
|
Calculates operator coefficients. Implements itk::NeighborhoodOperator< 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 maximum error of the gaussian approximation. Maximum error is the difference between the area under the discrete Gaussian curve and the area under the continuous Gaussian. Maximum error affects the Gaussian operator size. Definition at line 119 of file itkGaussianOperator.h. |
|
|||||||||
|
Returns the maximum allowed kernel width. Definition at line 130 of file itkGaussianOperator.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. |
|
|||||||||
|
Returns the variance of the Gaussian (scale) for the operator. Definition at line 112 of file itkGaussianOperator.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 >. |
|
||||||||||||||||
|
Returns the value of the modified Bessel function Ik(x) at a point x>=0, where k>=2. |
|
||||||||||
|
Returns the value of the modified Bessel function I0(x) at a point x >= 0. |
|
||||||||||
|
Returns the value of the modified Bessel function I1(x) at a point x, x real. |
|
||||||||||
|
||||||||||
|
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::NeighborhoodOperator< TPixel, VDimension, TAllocator >. Definition at line 134 of file itkGaussianOperator.h. References itk::Indent::GetNextIndent(), and HardConnectedComponentImageFilter::PrintSelf(). |
|
||||||||||
|
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. |
|
||||||||||
|
Sets the desired maximum error of the gaussian approximation. Maximum error is the difference between the area under the discrete Gaussian curve and the area under the continuous Gaussian. Maximum error affects the Gaussian operator size. Definition at line 101 of file itkGaussianOperator.h. |
|
||||||||||
|
Sets a limit for growth of the kernel. Small maximum error values with large variances will yield very large kernel sizes. This value can be used to truncate a kernel in such instances. A warning will be given on truncation of the kernel. Definition at line 126 of file itkGaussianOperator.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. |
|
||||||||||
|
Sets the desired variance of the Gaussian kernel. Definition at line 94 of file itkGaussianOperator.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