[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
Recursive convolution functions |
Functions | |
template<... > | |
void | recursiveFilterLine (...) |
Performs a 1-dimensional recursive convolution of the source signal. More... | |
template<... > | |
void | recursiveFilterX (...) |
Performs 1 dimensional recursive filtering (1st and 2nd order) in x direction. More... | |
template<... > | |
void | recursiveFilterY (...) |
Performs 1 dimensional recursive filtering (1st and 2nd order) in y direction. More... | |
template<... > | |
void | recursiveFirstDerivativeLine (...) |
Performs a 1 dimensional recursive convolution of the source signal. More... | |
template<... > | |
void | recursiveFirstDerivativeX (...) |
Recursively calculates the 1 dimensional first derivative in x direction. More... | |
template<... > | |
void | recursiveFirstDerivativeY (...) |
Recursively calculates the 1 dimensional first derivative in y direction. More... | |
template<... > | |
void | recursiveGaussianFilterLine (...) |
Compute a 1-dimensional recursive approximation of Gaussian smoothing. More... | |
template<... > | |
void | recursiveGaussianFilterX (...) |
Compute 1 dimensional recursive approximation of Gaussian smoothing in y direction. More... | |
template<... > | |
void | recursiveGaussianFilterY (...) |
Compute 1 dimensional recursive approximation of Gaussian smoothing in y direction. More... | |
template<... > | |
void | recursiveSecondDerivativeLine (...) |
Performs a 1 dimensional recursive convolution of the source signal. More... | |
template<... > | |
void | recursiveSecondDerivativeX (...) |
Recursively calculates the 1 dimensional second derivative in x direction. More... | |
template<... > | |
void | recursiveSecondDerivativeY (...) |
Recursively calculates the 1 dimensional second derivative in y direction. More... | |
template<... > | |
void | recursiveSmoothLine (...) |
Convolves the image with a 1-dimensional exponential filter. More... | |
template<... > | |
void | recursiveSmoothX (...) |
Performs 1 dimensional recursive smoothing in x direction. More... | |
template<... > | |
void | recursiveSmoothY (...) |
Performs 1 dimensional recursive smoothing in y direction. More... | |
First order recursive filters and their specialization for the exponential filter and its derivatives (1D and separable 2D). These filters are very fast, and the speed does not depend on the filter size.
void vigra::recursiveFilterLine | ( | ... | ) |
Performs a 1-dimensional recursive convolution of the source signal.
The function performs a causal and an anti-causal first or second order recursive filtering with the given filter parameter b1
and border treatment border
(first order filter, b2 = 0
) or parameters b1, b2
and BORDER_TREATMENT_REFLECT
(second order filter). Thus, the result is always a filtering with linear phase.
The signal's value_type (SrcAccessor::value_type) must be a linear space over double
, i.e. addition of source values, multiplication with double
, and NumericTraits
must be defined.
Declaration:
First order recursive filter:
Second order recursive filter:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
Required Interface:
Preconditions:
void vigra::recursiveGaussianFilterLine | ( | ... | ) |
Compute a 1-dimensional recursive approximation of Gaussian smoothing.
The function applies a causal and an anti-causal third order recursive filter which optimally approximates the Gaussian filter, as proposed in
I. Young, L. van Vliet: Recursive implementation of the Gaussian filter
Signal Processing 44:139-151, 1995
The formulas for transforming the given scale parameter sigma
into the actual filter coefficients are taken from Luigi Rosa's Matlab implementation.
The signal's value_type (SrcAccessor::value_type) must be a linear space over double
, i.e. addition of source values, multiplication with double
, and NumericTraits
must be defined.
Declaration:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
Required Interface:
Preconditions:
void vigra::recursiveSmoothLine | ( | ... | ) |
Convolves the image with a 1-dimensional exponential filter.
This function calls recursiveFilterLine() with b = exp(-1.0/scale)
and border = BORDER_TREATMENT_REPEAT
. See recursiveFilterLine() for more documentation.
Declaration:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
Required Interface:
Preconditions:
void vigra::recursiveFirstDerivativeLine | ( | ... | ) |
Performs a 1 dimensional recursive convolution of the source signal.
It uses the first derivative an exponential d/dx exp(-abs(x)/scale)
as a kernel. The signal's value_type (SrcAccessor::value_type) must be a linear space over double
, i.e. addition and subtraction of source values, multiplication with double
, and NumericTraits
must be defined. Border treatment is always BORDER_TREATMENT_REPEAT
.
Declaration:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
Required Interface:
Preconditions:
void vigra::recursiveSecondDerivativeLine | ( | ... | ) |
Performs a 1 dimensional recursive convolution of the source signal.
It uses the second derivative an exponential d2/dx2 exp(-abs(x)/scale)
as a kernel. The signal's value_type (SrcAccessor::value_type) must be a linear space over double
, i.e. addition and subtraction of source values, multiplication with double
, and NumericTraits
must be defined. Border treatment is always BORDER_TREATMENT_REPEAT
.
Declaration:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
Required Interface:
Preconditions:
void vigra::recursiveFilterX | ( | ... | ) |
Performs 1 dimensional recursive filtering (1st and 2nd order) in x direction.
It calls recursiveFilterLine() for every row of the image. See recursiveFilterLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
void vigra::recursiveGaussianFilterX | ( | ... | ) |
Compute 1 dimensional recursive approximation of Gaussian smoothing in y direction.
It calls recursiveGaussianFilterLine() for every column of the image. See recursiveGaussianFilterLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
void vigra::recursiveSmoothX | ( | ... | ) |
Performs 1 dimensional recursive smoothing in x direction.
It calls recursiveSmoothLine() for every row of the image. See recursiveSmoothLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
void vigra::recursiveFilterY | ( | ... | ) |
Performs 1 dimensional recursive filtering (1st and 2nd order) in y direction.
It calls recursiveFilterLine() for every column of the image. See recursiveFilterLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
void vigra::recursiveGaussianFilterY | ( | ... | ) |
Compute 1 dimensional recursive approximation of Gaussian smoothing in y direction.
It calls recursiveGaussianFilterLine() for every column of the image. See recursiveGaussianFilterLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
void vigra::recursiveSmoothY | ( | ... | ) |
Performs 1 dimensional recursive smoothing in y direction.
It calls recursiveSmoothLine() for every column of the image. See recursiveSmoothLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
void vigra::recursiveFirstDerivativeX | ( | ... | ) |
Recursively calculates the 1 dimensional first derivative in x direction.
It calls recursiveFirstDerivativeLine() for every row of the image. See recursiveFirstDerivativeLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
void vigra::recursiveFirstDerivativeY | ( | ... | ) |
Recursively calculates the 1 dimensional first derivative in y direction.
It calls recursiveFirstDerivativeLine() for every column of the image. See recursiveFirstDerivativeLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
void vigra::recursiveSecondDerivativeX | ( | ... | ) |
Recursively calculates the 1 dimensional second derivative in x direction.
It calls recursiveSecondDerivativeLine() for every row of the image. See recursiveSecondDerivativeLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
void vigra::recursiveSecondDerivativeY | ( | ... | ) |
Recursively calculates the 1 dimensional second derivative in y direction.
It calls recursiveSecondDerivativeLine() for every column of the image. See recursiveSecondDerivativeLine() for more information about required interfaces and vigra_preconditions.
Declarations:
pass 2D array views:
Usage:
#include <vigra/recursiveconvolution.hxx>
Namespace: vigra
© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) |
html generated using doxygen and Python
|