[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

details Gabor Filter VIGRA

Classes

class  GaborFilterFamily< ImageType, Alloc >
 Family of gabor filters of different scale and direction. More...
 

Functions

double angularGaborSigma (int directionCount, double centerFrequency)
 Calculate sensible angular sigma for given parameters. More...
 
template<... >
void createGaborFilter (...)
 Create a gabor filter in frequency space. More...
 
double radialGaborSigma (double centerFrequency)
 Calculate sensible radial sigma for given parameters. More...
 

Detailed Description

Functions to create or apply gabor filter (latter based on FFTW).

Function Documentation

void vigra::createGaborFilter (   ...)

Create a gabor filter in frequency space.

The orientation is given in radians, the other parameters are the center frequency (for example 0.375 or smaller) and the two angular and radial sigmas of the gabor filter. (See angularGaborSigma() for an explanation of possible values.)

The energy of the filter is explicitly normalized to 1.0.

Declarations:

pass 2D array views:

namespace vigra {
template <class T, class S>
void
createGaborFilter(MultiArrayView<2, T, S> dest,
double orientation, double centerFrequency,
double angularSigma, double radialSigma);
}

show deprecated declarations

Usage:

#include <vigra/gaborfilter.hxx>
Namespace: vigra

MultiArray<2, float> gabor(w,h);
createGaborFilter(gabor, orient, freq,
angularGaborSigma(directionCount, freq),

show deprecated examples

double vigra::radialGaborSigma ( double  centerFrequency)

Calculate sensible radial sigma for given parameters.

For a brief introduction what is meant with "sensible" sigmas, see angularGaborSigma().

Declaration:

namespace vigra {
double radialGaborSigma(double centerFrequency)
}
double vigra::angularGaborSigma ( int  directionCount,
double  centerFrequency 
)

Calculate sensible angular sigma for given parameters.

"Sensible" means: If you use a range of gabor filters for feature detection, you are interested in minimal redundancy. This is hard to define but one possible try is to arrange the filters in frequency space, so that the half-peak-magnitude ellipses touch each other.

To do so, you must know the number of directions (first parameter for the angular sigma function) and the center frequency of the filter you want to calculate the sigmas for.

The exact formulas are:

sigma_radial= 1/sqrt(ln(4)) * centerFrequency/3
sigma_angular= 1/sqrt(ln(4)) * tan(pi/(directions*2))
sqrt(8/9) * centerFrequency

Declaration:

namespace vigra {
double angularGaborSigma(int directionCount, double centerFrequency)
}

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de)
Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany

html generated using doxygen and Python
vigra 1.11.1 (Fri May 19 2017)