Il filtro di Gabor è un filtro lineare la cui risposta all'impulso è definita da una funzione armonica moltiplicata per una funzione Gaussiana. In forza del teorema di convoluzione la trasformata di Fourier della risposta all'impulso di un filtro di Gabor, detta anche funzione di trasferimento del sistema, risulta essere la convoluzione fra la trasformata di Fourier della funzione armonica e la trasformata di Fourier della funzione Gaussiana.

Definizione Il filtro di Gabor è descritto dall'equazione

dove:

e

In questa equazione: rappresenta la lunghezza d'onda del fattore coseno rappresenta l'orientazione del filtro è la fase del fattore coseno è il parametro che regola l'inviluppo specifica l'ellitticità del supporto della funzione di Gabor.

Spazio delle Wavelet

I filtri di Gabor sono strettamente legati alle funzioni wavelet di Gabor, e possono essere creati per infinite combinazioni di dilatazioni e rotazioni. L'elaborazione di un generico segnale avviene costruendo un banco di filtri di Gabor di differente scalatura e orientazione. La trasformazione avviene convoluendo il filtro con il segnale, ottenendo un risultato che appartiene al cosiddetto spazio di Gabor.

Campi di applicazione Lo spazio di Gabor è molto utilizzato nei seguenti campi d applicazione: elaborazione di immagine biometria: riconoscimento di iride e di impronte digitali. oftalmologia: Alcuni studi sulla Neurostimolazione tramite tecnica di impressione rapida dei filtri di Gabor hanno rivelato un miglioramento dell'acuità visiva dei pazienti affetti da ambliopia .

Biologia Il processo di convoluzione fra filtri di Gabor e segnali ottici è strettamente legato in ambito biologico ai processi che avvengono nella corteccia visiva.

Implementazioni

Linguaggio MATLAB 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);

Note

Bibliografia

Voci correlate Dennis Gabor

Gabor