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

details GaborFilterFamily Class Template Reference VIGRA

Family of gabor filters of different scale and direction. More...

#include "vigra/gaborfilter.hxx"

Inheritance diagram for GaborFilterFamily:

ImageArray List of all members.

Public Methods

 GaborFilterFamily (const Diff2D &size, int directionCount=stdDirectionCount, int scaleCount=stdScaleCount, double maxCenterFrequency=3.0/8.0, Alloc const &alloc=Alloc())
 GaborFilterFamily (int width=stdFilterSize, int height=-1, int directionCount=stdDirectionCount, int scaleCount=stdScaleCount, double maxCenterFrequency=3.0/8.0, Alloc const &alloc=Alloc())
int filterIndex (int direction, int scale) const
ImageType const & getFilter (int direction, int scale) const
virtual void resizeImages (const Diff2D &newSize)
int scaleCount () const
int directionCount () const
void setDirectionScaleCounts (int directionCount, int scaleCount)
double maxCenterFrequency ()
void setMaxCenterFrequency (double maxCenterFrequency)


Detailed Description


template<class ImageType, class Alloc = typename ImageType::allocator_type::template rebind<ImageType>::other>
class vigra::GaborFilterFamily< ImageType, Alloc >

Family of gabor filters of different scale and direction.

A GaborFilterFamily can be used to quickly create a whole family of gabor filters in frequency space. Especially useful in conjunction with Fast Fourier Transform, since it's derived from ImageArray.

The filter parameters are chosen to make the center frequencies decrease in octaves with increasing scale indices, and to make the half-peak-magnitude ellipses touch each other to somewhat reduce redundancy in the filter answers. This is done by using angularGaborSigma() and radialGaborSigma(), you'll find more information there.

The template parameter ImageType should be a scalar image type suitable for filling in

#include "vigra/gaborfilter.hxx"

Namespace: vigra


Constructor & Destructor Documentation


GaborFilterFamily const Diff2D   size,
int    directionCount = stdDirectionCount,
int    scaleCount = stdScaleCount,
double    maxCenterFrequency = 3.0/8.0,
Alloc const &    alloc = Alloc()
[inline]

 

Constructs a family of gabor filters in frequency space. The filters will be calculated on construction, so it makes sense to provide good parameters right now although they can be changed later, too. If you leave them out, the defaults are a directionCount of 6, a scaleCount of 4 and a maxCenterFrequency of 3/8(=0.375).


GaborFilterFamily int    width = stdFilterSize,
int    height = -1,
int    directionCount = stdDirectionCount,
int    scaleCount = stdScaleCount,
double    maxCenterFrequency = 3.0/8.0,
Alloc const &    alloc = Alloc()
[inline]

 

Convenience variant of the above constructor taking width and height separately. Also, this one serves as default constructor constructing 128x128 pixel filters.


Member Function Documentation


int directionCount   const [inline]

 

Query the number of filter directions available.


int filterIndex int    direction,
int    scale
const [inline]

 

Return the index of the filter with the given direction and scale in this ImageArray. direction must in the range 0..directionCount()-1 and scale in the range 0..rangeCount()-1. This is useful for example if you used applyFourierFilterFamily() and got a resulting ImageArray which still has the same order of images, but no getFilter() method anymore.


ImageType const& getFilter int    direction,
int    scale
const [inline]

 

Return the filter with the given direction and scale. direction must in the range 0..directionCount()-1 and scale in the range 0..rangeCount()-1. filters.getFilter(direction, scale) is the same as filters[filterIndex(direction, scale)].


double maxCenterFrequency   [inline]

 

Return the center frequency of the filter(s) with scale==0. Filters with scale>0 will have a center frequency reduced in octaves: centerFrequency= maxCenterFrequency / 2.0^scale


virtual void resizeImages const Diff2D   newSize [inline, virtual]

 

Resize all filters (causing their recalculation).

Reimplemented from ImageArray.


int scaleCount   const [inline]

 

Query the number of filter scales available.


void setDirectionScaleCounts int    directionCount,
int    scaleCount
[inline]

 

Change the number of directions / scales. This causes the recalculation of all filters.


void setMaxCenterFrequency double    maxCenterFrequency [inline]

 

Change the center frequency of the filter(s) with scale==0. See maxCenterFrequency().


The documentation for this class was generated from the following file:

© Ullrich Köthe (koethe@informatik.uni-hamburg.de)
Cognitive Systems Group, University of Hamburg, Germany

html generated using doxygen and Python
VIGRA 1.3.2 (27 Jan 2005)