Package org.itk.simple
Class RecursiveGaussianImageFilter
java.lang.Object
org.itk.simple.ProcessObject
org.itk.simple.ImageFilter
org.itk.simple.RecursiveGaussianImageFilter
Base class for computing IIR convolution with an approximation of a
Gaussian kernel.
\\[ \\frac{ 1 }{ \\sigma \\sqrt{ 2 \\pi } } \\exp{
\\left( - \\frac{x^2}{ 2 \\sigma^2 } \\right) } \\]
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. Farnebäck
& C.-F. Westin, "Improving Deriche-style Recursive Gaussian
Filters". J Math Imaging Vis 26, 293–299 (2006). https://doi.org/10.1007/s10851-006-8464-z
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() .
See:
DiscreteGaussianImageFilter
itk::simple::RecursiveGaussian for the procedural interface
itk::RecursiveGaussianImageFilter for the Doxygen on the original ITK class.
C++ includes: sitkRecursiveGaussianImageFilter.h
-
Nested Class Summary
Nested Classes -
Field Summary
Fields inherited from class org.itk.simple.ProcessObject
swigCMemOwn
-
Constructor Summary
ConstructorsModifierConstructorDescriptionitk::simple::RecursiveGaussianImageFilter::RecursiveGaussianImageFilter() Default Constructor that takes no arguments and initializes default parametersprotected
RecursiveGaussianImageFilter
(long cPtr, boolean cMemoryOwn) -
Method Summary
Modifier and TypeMethodDescriptionvoid
delete()
virtual itk::simple::RecursiveGaussianImageFilter::~RecursiveGaussianImageFilter() DestructorImage itk::simple::RecursiveGaussianImageFilter::Execute(Image &&image1) Execute the filter on the input imageprotected void
finalize()
protected static long
long
unsigned int itk::simple::RecursiveGaussianImageFilter::GetDirection() constgetName()
std::string itk::simple::RecursiveGaussianImageFilter::GetName() const Name of this classboolean
bool itk::simple::RecursiveGaussianImageFilter::GetNormalizeAcrossScale() constgetOrder()
OrderType itk::simple::RecursiveGaussianImageFilter::GetOrder() const Set/Get the Order of the Gaussian to convolve with.double
getSigma()
double itk::simple::RecursiveGaussianImageFilter::GetSigma() const Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel.void
Self& itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOff()void
Self& itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOn() Set the value of NormalizeAcrossScale to true or false respectfully.void
setDirection
(long Direction) Self& itk::simple::RecursiveGaussianImageFilter::SetDirection(unsigned int Direction)void
setNormalizeAcrossScale
(boolean NormalizeAcrossScale) Self& itk::simple::RecursiveGaussianImageFilter::SetNormalizeAcrossScale(bool NormalizeAcrossScale) Set/Get the flag for normalizing the gaussian over scale-space.void
Self& itk::simple::RecursiveGaussianImageFilter::SetOrder(OrderType Order) Set/Get the Order of the Gaussian to convolve with.void
setSigma
(double Sigma) Self& itk::simple::RecursiveGaussianImageFilter::SetSigma(double Sigma) Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel.protected static long
toString()
std::string itk::simple::RecursiveGaussianImageFilter::ToString() const Print ourselves outMethods inherited from class org.itk.simple.ImageFilter
getCPtr, swigRelease
Methods inherited from class org.itk.simple.ProcessObject
abort, addCommand, debugOff, debugOn, getCPtr, getDebug, getGlobalDefaultCoordinateTolerance, getGlobalDefaultDebug, getGlobalDefaultDirectionTolerance, getGlobalDefaultNumberOfThreads, getGlobalDefaultThreader, getGlobalWarningDisplay, getNumberOfThreads, getNumberOfWorkUnits, getProgress, globalDefaultDebugOff, globalDefaultDebugOn, globalWarningDisplayOff, globalWarningDisplayOn, hasCommand, removeAllCommands, setDebug, setGlobalDefaultCoordinateTolerance, setGlobalDefaultDebug, setGlobalDefaultDirectionTolerance, setGlobalDefaultNumberOfThreads, setGlobalDefaultThreader, setGlobalWarningDisplay, setNumberOfThreads, setNumberOfWorkUnits, swigRelease
-
Constructor Details
-
RecursiveGaussianImageFilter
protected RecursiveGaussianImageFilter(long cPtr, boolean cMemoryOwn) -
RecursiveGaussianImageFilter
public RecursiveGaussianImageFilter()itk::simple::RecursiveGaussianImageFilter::RecursiveGaussianImageFilter() Default Constructor that takes no arguments and initializes default parameters
-
-
Method Details
-
getCPtr
-
swigRelease
-
finalize
protected void finalize()- Overrides:
finalize
in classImageFilter
-
delete
public void delete()virtual itk::simple::RecursiveGaussianImageFilter::~RecursiveGaussianImageFilter() Destructor- Overrides:
delete
in classImageFilter
-
setSigma
public void setSigma(double Sigma) Self& itk::simple::RecursiveGaussianImageFilter::SetSigma(double Sigma) Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel. The default is 1.0. An exception will be generated if the Sigma value is less than or equal to zero. -
getSigma
public double getSigma()double itk::simple::RecursiveGaussianImageFilter::GetSigma() const Set/Get the Sigma, measured in world coordinates, of the Gaussian kernel. The default is 1.0. An exception will be generated if the Sigma value is less than or equal to zero. -
setNormalizeAcrossScale
public void setNormalizeAcrossScale(boolean NormalizeAcrossScale) Self& itk::simple::RecursiveGaussianImageFilter::SetNormalizeAcrossScale(bool NormalizeAcrossScale) 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 \\[ L(x; t) = g(x; t) \\ast f(x) \\] be the scale-space representation of image \\[ f(x) \\] where \\[ g(x; t) = \\frac{1}{ \\sqrt{ 2 \\pi t} } \\exp{ \\left( -\\frac{x^2}{ 2 t } \\right) } \\] is the Gaussian function and \\[\\ast\\] denotes convolution. This is a change from above with \\[ t = \\sigma^2 \\] . Then the normalized derivative operator for normalized coordinates across scale is: \\[ \\partial_\\xi = \\sqrt{t} \\partial_x \\] The resulting scaling factor is \\[ \\sigma^N \\] 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. Not all scale space axioms are satisfied by this filter, some are only approximated. Particularly, at fine scales ( say less than 1 pixel ) other methods such as a discrete Gaussian kernel should be considered. -
normalizeAcrossScaleOn
public void normalizeAcrossScaleOn()Self& itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOn() Set the value of NormalizeAcrossScale to true or false respectfully. -
normalizeAcrossScaleOff
public void normalizeAcrossScaleOff()Self& itk::simple::RecursiveGaussianImageFilter::NormalizeAcrossScaleOff() -
getNormalizeAcrossScale
public boolean getNormalizeAcrossScale()bool itk::simple::RecursiveGaussianImageFilter::GetNormalizeAcrossScale() const -
setOrder
Self& itk::simple::RecursiveGaussianImageFilter::SetOrder(OrderType Order) Set/Get the Order of the Gaussian to convolve with. ZeroOrder is equivalent to convolving with a Gaussian. This is the default. FirstOrder is equivalent to convolving with the first derivative of a Gaussian. SecondOrder is equivalent to convolving with the second derivative of a Gaussian. -
getOrder
OrderType itk::simple::RecursiveGaussianImageFilter::GetOrder() const Set/Get the Order of the Gaussian to convolve with. ZeroOrder is equivalent to convolving with a Gaussian. This is the default. FirstOrder is equivalent to convolving with the first derivative of a Gaussian. SecondOrder is equivalent to convolving with the second derivative of a Gaussian. -
setDirection
public void setDirection(long Direction) Self& itk::simple::RecursiveGaussianImageFilter::SetDirection(unsigned int Direction) -
getDirection
public long getDirection()unsigned int itk::simple::RecursiveGaussianImageFilter::GetDirection() const -
getName
std::string itk::simple::RecursiveGaussianImageFilter::GetName() const Name of this class- Overrides:
getName
in classProcessObject
-
toString
std::string itk::simple::RecursiveGaussianImageFilter::ToString() const Print ourselves out- Overrides:
toString
in classProcessObject
-
execute
Image itk::simple::RecursiveGaussianImageFilter::Execute(Image &&image1) Execute the filter on the input image
-