STIRA
0.1
|
Generate transfer functions to be applied in the fourier domain. More...
#include <TransferFunctionGenerator.h>
Public Member Functions | |
TransferFunctionGenerator () | |
Constructor. | |
~TransferFunctionGenerator () | |
Destructor. | |
Static Public Member Functions | |
static int | GetScaleFactors (int width, int height, double &xFactor, double &yFactor) |
gets factors for scaling coordinates in Fourier domain More... | |
static ArrayGrid< double > * | GenerateHighPassTransferFunction (int width, int height, double x1, double x2) |
Generates a highpass transfer function as an ArrayGrid object. More... | |
static ArrayGrid< double > * | GenerateLowPassTransferFunction (int width, int height, double x1, double x2) |
Generates a lowpass transfer function as an ArrayGrid object. More... | |
static FFTBand * | GenerateOrientedTransferFunction (int width, int height, int orientationIndex, int maxNrOfOrientations, bool isForward, common::NumberMode mode=common::MODE_REAL) |
Generates a oriented transfer function as an ArrayGrid object. More... | |
static void | HighFrequencyCrossMask (FFTBand *inoutGrid, int nrBands) |
Trick to distribute highest frequencies over set of bands. More... | |
static ArrayGrid< double > * | GenerateLogRadiusBand (int width, int height, double centerFrequency, double bandWidth) |
Generates a LogGaussian axially symmetric transfer function Help function for GenerateLogGaborBandTransferFunction. More... | |
static ArrayGrid< double > * | GenerateGaussianAngularBand (int width, int height, double centerAngle, double angleSpread) |
Generates a angular Gaussian transfer function Help function for GenerateLogGaborBandTransferFunction. More... | |
static ArrayGrid< double > * | GenerateLogGaborBandTransferFunction (int width, int height, double centerFrequency, double radialWidth, double centerAngle, double angleSpread) |
Generates a LogGabor transfer function Source: Peter Kovesi: http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/PhaseCongruency/Docs/convexpl.html. More... | |
static ArrayGrid< double > * | GenerateAxisSuppressTransferFunction (int width, int height, int axisWidth, double x1, double x2) |
Generates a transfer function to suppress frequencies on the axes. More... | |
static ArrayGrid< double > * | GenerateAxisExtractTransferFunction (int width, int height, int axisWidth) |
static ArrayGrid< double > * | ConvertTransferFunctionToFilterKernel (FFTBand *pTransferFunction, common::NumberMode mode=common::MODE_REAL) |
Converts a Fourier domain transfer function to a filter kernel. More... | |
static ArrayGrid< double > * | ConvertTransferFunctionToFilterKernel (ArrayGrid< double > *pTransferFunction, common::NumberMode mode=common::MODE_REAL) |
Converts a Fourier domain transfer function to a filter kernel. More... | |
Generate transfer functions to be applied in the fourier domain.
|
static |
Converts a Fourier domain transfer function to a filter kernel.
pTransferFunction | the transfer function to be converted |
mode | tells if the real or the imaginary values are taken after the Inverse Fourier Transform is applied to the transfer function |
|
static |
Converts a Fourier domain transfer function to a filter kernel.
pTransferFunction | the transfer function to be converted |
mode | tells if the real or the imaginary values are taken after the Inverse Fourier Transform is applied to the transfer function |
|
static |
Generates a transfer function to suppress frequencies on the axes.
width | width of the grid with the transfer function |
height | height of the grid with the transfer function |
axisWidth | width around the axis to suppress |
x1 | distance from DC up to which the axis frequencies are not suppressed |
x2 | distance from DC beyond which all frequencies are suppressed |
References stira::imagedata::ArrayGrid< T >::SetValue().
|
static |
Generates a angular Gaussian transfer function Help function for GenerateLogGaborBandTransferFunction.
width | width of the grid with the transfer function |
height | height of the grid with the transfer function |
centerAngle | angle on which the maximum transfer occurs |
angleSpread | angular width of the transfer band |
References stira::imagedata::ArrayGrid< T >::SetValue().
|
static |
Generates a highpass transfer function as an ArrayGrid object.
width | width of grid to be generated |
height | height of grid to be generated |
x1 | lowpass frequency (from here to DC, all frequencies are 0) |
x2 | highpass frequency (from here to the edges, all frequencies are 1) |
References stira::imagedata::ArrayGrid< T >::SetValue().
Referenced by stira::steerable::PyramidComplex::Decompose(), stira::steerable::PyramidReal::Decompose(), stira::steerable::PyramidReal::Reconstruct(), and stira::steerable::PyramidComplex::Reconstruct().
|
static |
Generates a LogGabor transfer function Source: Peter Kovesi: http://www.csse.uwa.edu.au/~pk/Research/MatlabFns/PhaseCongruency/Docs/convexpl.html.
width | width of the grid with the transfer function |
height | height of the grid with the transfer function |
centerFrequency | distance from DC at which the maximum transfer occurs |
radialWidth | radial width of the transfer band |
centerAngle | angle on which the maximum transfer occurs |
angleSpread | angular width of the transfer band |
References stira::fouriertools::FFTBand::ApplyInverseTransform(), stira::fouriertools::FFTBand::ConvertToImaginaryGrid(), stira::fouriertools::FFTBand::ConvertToRealGrid(), and stira::imagedata::ArrayGrid< T >::MultiplyWith().
Referenced by stira::filter::LogGabor::Run().
|
static |
Generates a LogGaussian axially symmetric transfer function Help function for GenerateLogGaborBandTransferFunction.
width | width of the grid with the transfer function |
height | height of the grid with the transfer function |
centerFrequency | distance from DC at which the maximum transfer occurs |
bandWidth | width of the transfer band |
References stira::imagedata::ArrayGrid< T >::SetValue().
|
static |
Generates a lowpass transfer function as an ArrayGrid object.
width | width of grid to be generated |
height | height of grid to be generated |
x1 | lowpass frequency (from here to DC, all frequencies are 1) |
x2 | highpass frequency (from here to the edges, all frequencies are 0) |
References stira::imagedata::ArrayGrid< T >::SetValue().
Referenced by stira::steerable::PyramidMaster< T >::ExtractL(), stira::steerable::PyramidMaster< T >::ExtractL0(), stira::steerable::PyramidMaster< T >::ReconstructL(), stira::steerable::PyramidMaster< T >::ReconstructL0(), and stira::fouriertools::FFT::SuppressOuterFrequencies().
|
static |
Generates a oriented transfer function as an ArrayGrid object.
width | width of grid to be generated |
height | height of grid to be generated |
orientationIndex | number of the orientation to consider now |
maxNrOfOrientations | maximum number of orientations in this decomposition |
isForward | flag whether this transform is forward transform (if false; is backward transform) |
mode | enum whether the transfer function needs to produce a real or complex valued response |
References stira::common::MathUtils::Factorial(), and stira::fouriertools::FFTBand::SetValue().
Referenced by stira::steerable::PyramidMaster< T >::ExtractB(), stira::steerable::PyramidMaster< T >::ExtractB0(), stira::steerable::PyramidMaster< T >::ReconstructB(), and stira::steerable::PyramidMaster< T >::ReconstructB0().
|
static |
gets factors for scaling coordinates in Fourier domain
width | in: width of the grid |
height | in: height of the grid |
xFactor | out: scaling factor in x direction |
yFactor | out: scaling factor in y direction |
|
static |
Trick to distribute highest frequencies over set of bands.
inoutGrid | transfer function to be masked (is input as well as output) |
nrBands | nr of bands over wich to distribute the energy of this frequencies |
References stira::fouriertools::FFTBand::GetHeight(), stira::fouriertools::FFTBand::GetWidth(), and stira::fouriertools::FFTBand::SetValue().
Referenced by stira::steerable::PyramidMaster< T >::ExtractB0(), and stira::steerable::PyramidMaster< T >::ReconstructB0().