digplanet beta 1: Athena
Share digplanet:

Agriculture

Applied sciences

Arts

Belief

Business

Chronology

Culture

Education

Environment

Geography

Health

History

Humanities

Language

Law

Life

Mathematics

Nature

People

Politics

Science

Society

Technology

Example of a two-dimensional Gabor filter

In image processing, a Gabor filter, named after Dennis Gabor, is a linear filter used for edge detection. Frequency and orientation representations of Gabor filters are similar to those of the human visual system, and they have been found to be particularly appropriate for texture representation and discrimination. In the spatial domain, a 2D Gabor filter is a Gaussian kernel function modulated by a sinusoidal plane wave. The Gabor filters are self-similar: all filters can be generated from one mother wavelet by dilation and rotation.

J. G. Daugman discovered that simple cells in the visual cortex of mammalian brains can be modeled by Gabor functions.[1] Thus, image analysis by the Gabor functions is similar to perception in the human visual system.

Contents

Definition [edit]

Its impulse response is defined by a harmonic function multiplied by a Gaussian function. Because of the multiplication-convolution property (Convolution theorem), the Fourier transform of a Gabor filter's impulse response is the convolution of the Fourier transform of the harmonic function and the Fourier transform of the Gaussian function. The filter has a real and an imaginary component representing orthogonal directions.[2] The two components may be formed into a complex number or used individually.

Complex

g(x,y;\lambda,\theta,\psi,\sigma,\gamma) = \exp\left(-\frac{x'^2+\gamma^2y'^2}{2\sigma^2}\right)\exp\left(i\left(2\pi\frac{x'}{\lambda}+\psi\right)\right)

Real

g(x,y;\lambda,\theta,\psi,\sigma,\gamma) = \exp\left(-\frac{x'^2+\gamma^2y'^2}{2\sigma^2}\right)\cos\left(2\pi\frac{x'}{\lambda}+\psi\right)

Imaginary

g(x,y;\lambda,\theta,\psi,\sigma,\gamma) = \exp\left(-\frac{x'^2+\gamma^2y'^2}{2\sigma^2}\right)\sin\left(2\pi\frac{x'}{\lambda}+\psi\right)

where

x' = x \cos\theta + y \sin\theta\,

and

y' = -x \sin\theta + y \cos\theta\,

In this equation, \lambda represents the wavelength of the sinusoidal factor, \theta represents the orientation of the normal to the parallel stripes of a Gabor function, \psi is the phase offset, \sigma is the sigma of the Gaussian envelope and \gamma is the spatial aspect ratio, and specifies the ellipticity of the support of the Gabor function.

Feature extraction [edit]

A set of Gabor filters with different frequencies and orientations may be helpful for extracting useful features from an image.

Wavelet space [edit]

Demonstration of a Gabor filter applied to Chinese OCR. Four orientations are shown on the right 0°, 45°, 90° and 135°. The original character picture and the superposition of all four orientations are shown on the left.

Gabor filters are directly related to Gabor wavelets, since they can be designed for a number of dilations and rotations. However, in general, expansion is not applied for Gabor wavelets, since this requires computation of bi-orthogonal wavelets, which may be very time-consuming. Therefore, usually, a filter bank consisting of Gabor filters with various scales and rotations is created. The filters are convolved with the signal, resulting in a so-called Gabor space. This process is closely related to processes in the primary visual cortex.[3] Jones and Palmer showed that the real part of the complex Gabor function is a good fit to the receptive field weight functions found in simple cells in a cat's striate cortex.[4]

The Gabor space is very useful in image processing applications such as optical character recognition, iris recognition and fingerprint recognition. Relations between activations for a specific spatial location are very distinctive between objects in an image. Furthermore, important activations can be extracted from the Gabor space in order to create a sparse object representation.

Example implementation [edit]

This is an example implementation in MATLAB/Octave:

function gb=gabor_fn(sigma,theta,lambda,psi,gamma)
 
sigma_x = sigma;
sigma_y = sigma/gamma;
 
% Bounding box
nstds = 3;
xmax = max(abs(nstds*sigma_x*cos(theta)),abs(nstds*sigma_y*sin(theta)));
xmax = ceil(max(1,xmax));
ymax = max(abs(nstds*sigma_x*sin(theta)),abs(nstds*sigma_y*cos(theta)));
ymax = ceil(max(1,ymax));
xmin = -xmax; ymin = -ymax;
[x,y] = meshgrid(xmin:xmax,ymin:ymax);
 
% Rotation 
x_theta=x*cos(theta)+y*sin(theta);
y_theta=-x*sin(theta)+y*cos(theta);
 
gb= exp(-.5*(x_theta.^2/sigma_x^2+y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi);

See also [edit]

References [edit]

  1. ^ J. G. Daugman. Uncertainty relation for resolution in space, spatial frequency, and orientation optimized by two-dimensional visual cortical filters. Journal of the Optical Society of America A, 2(7):1160–1169, July 1985.
  2. ^ 3D surface tracking and approximation using Gabor filters, Jesper Juul Henriksen, South Denmark University, March 28, 2007
  3. ^ Daugman, J.G. (1980), "Two-dimensional spectral analysis of cortical receptive field profiles", Vision Res. 20 (10): 847–56, PMID 7467139 
  4. ^ J.P. Jones and L.A. Palmer. An evaluation of the two-dimensional gabor filter model of simple receptive fields in cat striate cortex. J. Neurophysiol., 58(6):1233-1258, 1987

External links [edit]

Further reading [edit]


Original courtesy of Wikipedia: http://en.wikipedia.org/wiki/Gabor_filter — Please support Wikipedia.
A portion of the proceeds from advertising on Digplanet goes to supporting Wikipedia.
5127 videos foundNext > 

Matlab Filtering Demo Part 1

Detection of Retinal Vascular Bifurcations by Trainable V4-like CORF Filters

Please send questions or comments to geazzo@gmail.com This talk was given in Aug 2011 at the conference CAIP in Seville (Spain). You can find our paper at ht...

Implementing Gabor Filter for Fingerprint Recognition Using Verilog HDL.wmv

This project present the implementations of Gabor filter for fingerprint recognition using Verilog HDL. This work demonstrates the application of Gabor Filte...

40 Gabor Filters created

Face Detection Using MATLAB

Based on gabor extraction , and support vector machine thank you Mr.Omni for the help !!

recursive nonlinear gabor filter

This video was created by a very simple recursive, nonlinear filtering process. Given an input image img_{0}, (i) compute a vertical gabor filter response im...

gabor texture based object tracker

Mean shift tracker based on texture values from gabor filter bank. This method can suplement color based tracking when color histograms of background en obje...

finger vein and finger texture identification using gabor filter

The Fourier Transform- Part III

A short tutorial video on how the Fourier Transform works. The video is designed for those who know what a Fourier Transform is but need to understand at a b...

recursive nonlinear gabor filter

This video was created by a very simple recursive, nonlinear filtering process. Given an input image img_{0}, (i) compute a vertical gabor filter response im...

5127 videos foundNext > 

We're sorry, but there's no news about "Gabor filter" right now.

Loading

Oops, we seem to be having trouble contacting Twitter

Talk About Gabor filter

You can talk about Gabor filter with people all over the world in our discussions.

Support Wikipedia

A portion of the proceeds from advertising on Digplanet goes to supporting Wikipedia. Please add your support for Wikipedia!