Un'implementazione matlab è in questa risposta: https://dsp.stackexchange.com/a/14201/5737
1) La formula di Wikipedia è un po 'troppo generica.
2) Se conosci le basi della trasformata con Fourier, allora empiricamente sai che: L'immagine viene vista come formata sovrapponendo una serie di onde sinusoidali di varie frequenze orientate in tutti i tipi di direzioni. Ogni "pixel" nella trasformazione ci dice l '"intensità" di tale onda. La posizione del "pixel" ci dice la frequenza e l'orientamento dell'onda. In pratica, si desidera selezionare solo determinate onde, con una frequenza specifica e un orientamento specifico.
Quindi il gioco è fatto: la trasformazione di Gabor è uno dei tanti cosiddetti filtri passa banda che consente di "tagliare" la trasformazione di Fourier e isolare solo informazioni specifiche. Un'altra informazione importante è che ogni "pixel" di Fourier è un valore complesso (parte reale e immaginaria)
3) Parametri: sono già visualizzati due parametri:
3.a) La frequenza di sintonia f0o periodo di ottimizzazione P0, o λstabilire a quale tipo di onda sinusale il filtro risponderà meglio. (f=1/P0=1/λ o f=π/λ a seconda dell'implementazione specifica) Fondamentalmente, un più piccolo P0significa un'onda sinusale più densa. Un più grandeP0 significa onde più grandi. P0 è in pixel (3, 5, 30, ecc. pixel) Non andare al di sotto di 3 pixel o oltre W/2 o ottieni effetti cattivi. Wè la larghezza dell'immagine, se l'immagine è quadrata. Si specifica questo usando il parametro P0 nel codice matlab.
3.b) Angolo centrale. Queste onde possono avere qualsiasi direzione. Vuoi selezionare solo le onde con un angolo specifico. Quindi, il secondo parametro è l'angolo di accordatura,θ0 o θnella tua formula. Di solito, in radianti. Orienta in codice matlab.
Non si può isolare solo una certa frequenza o un certo orientamento. (Cerca il principio di incertezza nei libri di testo. Sì, è simile a quello in fisica) Ma si può sintonizzare la quantità di frequenze vicine che perderà. I successivi due parametri specificano che:
3.c) ΔF, larghezza di banda di frequenza espressa in ottave. Valori utili, 1,5, 2, 3. Valori più grandi significano catturare una gamma più ampia di frequenze. C'è un prezzo per un passabanda più stretto, una localizzazione spaziale più scadente. Perché, di nuovo, libro di testo. FBW in codice matlab.
3.d) Δθla larghezza di banda angolare. Espresso in radianti.π/3 o π/2funziona benissimo. ABW in codice matlab.
La relazione tra Δf, Δθ dal codice matlab e σ,γ da Wikipedia hanno una formula ma non è essenziale per comprendere Gabor. ψ non è ancora importante per la comprensione di base.
Quindi ce l'hai: Xda Wikipedia è una matrice 2D di numeri contenente una maschera di convoluzione. Prendi l'immagine originale, la filtra con la maschera di convoluzione e ottieni un'altra immagine. Questa nuova immagine è la "risposta di Gabor" per l'immagine originale.
Il codice matlab esegue questi due passaggi insieme. Costruisce il filtro Gabor con i parametri specificati ed esegue la convoluzione. I risultati ReConv, ImConv sono le risposte. Ogni "pixel" di risposta ha una parte reale e una parte immaginaria. Se si desidera utilizzare questo codice, di solito è necessario calcolare l'energia per la risposta:E=a2+b2−−−−−−√ dove a è la parte reale della risposta (ReConv) e b è la parte immaginaria (ImConv), per ogni pixel.
Ecco qua: 1) Crea un filtro Gabor specificando P0,θ0,Δf,Δθ
2) Convoluta la tua immagine con il filtro. Otterrai due valori per ogni pixel. 3) Calcola l'energiaE e ottieni l'intensità della risposta per ciascun pixel nell'immagine originale
Un'altra intuizione: supponiamo di voler selezionare i bordi che si estendono su un orientamento perpendicolare a π/6e una certa larghezza di 20 pixel. Puoi costruire un filtro Gabor conP0≈20,θ0=π/6,Δf=2,Δθ=pi/2. ATTENZIONE che non esiste una relazione uguale tra la dimensione del bordo e laP0parametro. Dovresti provare vari valori e vedere cosa funziona meglio. Gli altri parametri (Δf,Δθ) toccali quando hai esperienza nell'ottimizzare i primi due.
Spero che sia d'aiuto!
Cristi
Aggiornare
Ecco un sito che ti permette di giocare un po 'con i parametri Gabor e prendere nota dei risultati: http://www.cogsci.nl/pages/gabor-generator.php
Dopo una rapida occhiata, entrambe le larghezze di banda di freqnency e angolo sono legate insieme come "Deviazione standard in pixel ... all'inviluppo di Gauss". Il resto dei parametri è facilmente identificabile. Tuttavia, nota che ci sono differenze numeriche! Per esempio. la fase può essere espressa nell'intervallo 0-1 o 0-π intervallo.