ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkRecursiveGaussianImageFilter.h>
Base class for computing IIR convolution with an approximation of a Gaussian kernel.
RecursiveGaussianImageFilter is the base class for recursive filters that approximate convolution with the Gaussian kernel. This class implements the recursive filtering method proposed by R.Deriche in IEEE-PAMI Vol.12, No.1, January 1990, pp 78-87, "Fast Algorithms for Low-Level Vision"
Details of the implementation are described in the technical report: R. Deriche, "Recursively Implementing The Gaussian and Its Derivatives", INRIA, 1993, ftp://ftp.inria.fr/INRIA/tech-reports/RR/RR-1893.ps.gz
Further improvements of the algorithm are described in: G. Farneback & C.-F. Westin, "On Implementation of Recursive Gaussian Filters", so far unpublished.
As compared to itk::DiscreteGaussianImageFilter, this filter tends to be faster for large kernels, and it can take the derivative of the blurred image in one step. Also, note that we have itk::RecursiveGaussianImageFilter::SetSigma(), but itk::DiscreteGaussianImageFilter::SetVariance().
Definition at line 62 of file itkRecursiveGaussianImageFilter.h.
typedef SmartPointer< const Self > itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::ConstPointer |
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
Definition at line 70 of file itkRecursiveGaussianImageFilter.h.
typedef TOutputImage itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::OutputImageType |
Type of the output image
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
Definition at line 93 of file itkRecursiveGaussianImageFilter.h.
typedef SmartPointer< Self > itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::Pointer |
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
Definition at line 69 of file itkRecursiveGaussianImageFilter.h.
typedef Superclass::RealType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::RealType |
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
Definition at line 72 of file itkRecursiveGaussianImageFilter.h.
typedef Superclass::ScalarRealType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::ScalarRealType |
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
Definition at line 73 of file itkRecursiveGaussianImageFilter.h.
typedef RecursiveGaussianImageFilter itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::Self |
Standard class typedefs.
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
Definition at line 67 of file itkRecursiveGaussianImageFilter.h.
typedef RecursiveSeparableImageFilter< TInputImage, TOutputImage > itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::Superclass |
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
Definition at line 68 of file itkRecursiveGaussianImageFilter.h.
enum itk::RecursiveGaussianImageFilter::OrderEnumType |
Enum type that indicates if the filter applies the equivalent operation of convolving with a gaussian, first derivative of a gaussian or the second derivative of a gaussian.
Definition at line 90 of file itkRecursiveGaussianImageFilter.h.
itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::RecursiveGaussianImageFilter | ( | ) | [protected] |
virtual itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::~RecursiveGaussianImageFilter | ( | ) | [inline, protected, virtual] |
Definition at line 158 of file itkRecursiveGaussianImageFilter.h.
itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::RecursiveGaussianImageFilter | ( | const Self & | ) | [private] |
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::ComputeDCoefficients | ( | ScalarRealType | sigmad, |
ScalarRealType | W1, | ||
ScalarRealType | L1, | ||
ScalarRealType | W2, | ||
ScalarRealType | L2, | ||
ScalarRealType & | SD, | ||
ScalarRealType & | DD, | ||
ScalarRealType & | ED | ||
) | [private] |
Compute the D coefficients in the recursive filter.
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::ComputeNCoefficients | ( | ScalarRealType | sigmad, |
ScalarRealType | A1, | ||
ScalarRealType | B1, | ||
ScalarRealType | W1, | ||
ScalarRealType | L1, | ||
ScalarRealType | A2, | ||
ScalarRealType | B2, | ||
ScalarRealType | W2, | ||
ScalarRealType | L2, | ||
ScalarRealType & | N0, | ||
ScalarRealType & | N1, | ||
ScalarRealType & | N2, | ||
ScalarRealType & | N3, | ||
ScalarRealType & | SN, | ||
ScalarRealType & | DN, | ||
ScalarRealType & | EN | ||
) | [private] |
Compute the N coefficients in the recursive filter.
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::ComputeRemainingCoefficients | ( | bool | symmetric | ) | [private] |
Compute the M coefficients and the boundary coefficients in the recursive filter.
virtual::itk::LightObject::Pointer itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::CreateAnother | ( | void | ) | const [virtual] |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::Object.
virtual const char* itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::GetNameOfClass | ( | ) | const [virtual] |
Type macro that defines a name for this class
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
virtual bool itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::GetNormalizeAcrossScale | ( | ) | const [virtual] |
virtual OrderEnumType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::GetOrder | ( | ) | const [virtual] |
Set/Get the Order of the Gaussian to convolve with.
virtual ScalarRealType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::GetSigma | ( | ) | const [virtual] |
Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel. The default is 1.0.
static Pointer itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::New | ( | ) | [static] |
Method for creation through the object factory.
Reimplemented from itk::Object.
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::operator= | ( | const Self & | ) | [private] |
PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::PrintSelf | ( | std::ostream & | os, |
Indent | indent | ||
) | const [protected, virtual] |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetFirstOrder | ( | ) |
Explicitly set a first order derivative.
virtual void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetNormalizeAcrossScale | ( | bool | _arg | ) | [virtual] |
Set/Get the flag for normalizing the gaussian over scale-space.
This flag enables the analysis of the differential shape of features independent of their size ( both pixels and physical size ). Following the notation of Tony Lindeberg:
Let
be the scale-space representation of image
where
is the Gaussian function and
denotes convolution. This is a change from above with
.
Then the normalized derivative operator for normalized coordinates across scale is:
The resulting scaling factor is
where N is the order of the derivative.
When this flag is ON the filter will be normalized in such a way that the values of derivatives are not biased by the size of the object. That is to say the maximum value a feature reaches across scale is independent of the scale of the object.
For analyzing an image across scale-space you want to enable this flag. It is disabled by default.
virtual void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetOrder | ( | OrderEnumType | _arg | ) | [virtual] |
Set/Get the Order of the Gaussian to convolve with.
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetSecondOrder | ( | ) |
Explicitly set a second order derivative.
virtual void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetSigma | ( | ScalarRealType | _arg | ) | [virtual] |
Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel. The default is 1.0.
virtual void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetUp | ( | ScalarRealType | spacing | ) | [protected, virtual] |
Set up the coefficients of the filter to approximate a specific kernel. Here it is used to approximate a Gaussian or one of its derivatives. Parameter is the spacing along the dimension to filter.
Implements itk::RecursiveSeparableImageFilter< TInputImage, TOutputImage >.
void itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::SetZeroOrder | ( | ) |
Explicitly set a zeroth order derivative.
bool itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::m_NormalizeAcrossScale [private] |
Normalize the image across scale space
Definition at line 192 of file itkRecursiveGaussianImageFilter.h.
OrderEnumType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::m_Order [private] |
Definition at line 194 of file itkRecursiveGaussianImageFilter.h.
ScalarRealType itk::RecursiveGaussianImageFilter< TInputImage, TOutputImage >::m_Sigma [private] |
Sigma of the gaussian kernel.
Definition at line 189 of file itkRecursiveGaussianImageFilter.h.