Gabor-suodatin on lineaarinen elektroninen suodatin , jonka impulssivaste määritellään harmoniseksi funktioksi kerrottuna Gaussin funktiolla . Digitaalisessa kuvankäsittelyssä tätä suodatinta käytetään kohteiden rajojen tunnistamiseen.
Johtuen ominaisuudesta sovittaa aikatason konvoluutio taajuusalueen kertolaskuun, Gabor-suotimen impulssivasteen Fourier-muunnos on harmonisen funktion ja Gaussin Fourier-muunnosten konvoluutio .
missä
Tässä yhtälössä edustaa kosinikertoimen aallonpituutta, määrittää Gabor-funktion yhdensuuntaisten liuskojen normaalin suunnan asteina, on vaihesiirtymä asteina ja on pakkauskerroin, joka luonnehtii Gabor-funktion elliptisyyttä .
Gabor-suodattimet liittyvät suoraan Gabor- aallokkeisiin , koska ne voidaan rakentaa sarjan puristus- ja kiertotoimintojen avulla. Gabor-avaruutta (suodattimen konvoluutio signaalilla) käytetään usein erilaisissa kuvantamissovelluksissa , erityisesti iiriksen tunnistamiseen biometrisissa turvajärjestelmissä ja automaattisissa sormenjälkitunnistukseen perustuvissa kulunvalvontajärjestelmissä.
Yksiulotteisen Gabor-suodattimen rakentamiseen käytetään seuraavaa kaavaa: ,
Mitä suurempi , sitä litteämpi toiminto kestää. Mitä pienempi , sitä terävämpi huippu on funktion piirtämisen seurauksena.
Yllä olevalla eksponentiaalisella funktiolla on satunnaismuuttujan normaalijakauman ominaisuudet. Kolmen sigman säännön mukaan lähes kaikki eksponentin arvot ovat välillä . Signaalianalyysiä varten funktioarvot lasketaan määritetyissä rajoissa.
Kosini, eksponentti ja niiden koostumus Gabor-funktioksi
Toimintojen riippuvuus
Toimintojen riippuvuus
Jokainen tulosignaalin piste muunnetaan vastaavaksi lähtösignaalin pisteeksi laskemalla tulosignaalin arvot keskiarvolla alueella , ottaen huomioon Gabor-kaavan painokertoimet .
Kaksiulotteisen Gabor-suodattimen rakentamiseen käytetään seuraavaa kaavaa:
missä: ovat Gaussin ytimen standardipoikkeamat akseleita pitkin ja , jotka määrittävät suodattimen laajuuden akseleita pitkin, on suodattimen taajuusmodulaatio,
Kuvankäsittely Gabor-suodattimella saavutetaan laskemalla käsitellyn kuvan arvot keskiarvo tietyllä alueella kussakin pisteessä. Vastaavasti Gabor-suodattimen asettamisella kuvaan on muoto:
missä: on alkuperäisen kuvan intensiteetti pisteessä , on uuden kuvan intensiteetti pisteessä , on Gabor-funktion arvo, .
Jos hylkäämme funktion sinimuotoisen komponentin Gabor-suodattimessa, se rappeutuu Gaussin sumennussuodattimeksi (Gaussian Blur) . Siksi on selvää, että näillä kahdella suodattimella on lähes sama sovellusalgoritmi, joka eroaa joissakin yksityiskohdissa.
Gaborin kaavasta voidaan nähdä, että suodin riippuu kuvan kvasijaksollisen rakenteen taajuudesta ja suunnasta. Siksi ennen suodattimen käyttöä on tarpeen rakentaa nykyisen kuvan taajuus- ja suuntakentät. Yleensä tehtävän yksinkertaistamiseksi lasketaan kuvan keskimääräinen taajuus, jota pidetään muuttumattomana kussakin pisteessä.
Suuntakentän rakentamiseen voidaan käyttää useita menetelmiä, joista nopein on differentiaalimenetelmä, jonka avulla voit rakentaa neliasteisen suuntakentän .
Siten, joilla on taajuus ja 4 suuntaa, on valmiiksi rakennettu 4 Gabor-suodatinta, yksi kumpaankin suuntaan. Tämän jälkeen jokaisessa kuvan kohdassa suodatin käännetään kuvan kanssa tietylle alueelle, mikä antaa uuden kuvan lähtöarvon.
Gabor-suodatin on tehokas kuvien käsittelyssä, joiden rakenteellinen redundanssi on näennäisesti jaksollinen. Näitä ovat sormenjälkikuvat, kristallogrammien kuvat ja interferrogrammit. Villieläimissä samanlainen väri löytyy usein seeproista, erilaisista kissoista (tiikereistä, ilveksistä, savukissoista), linnuista (tere), kaloista (raidallinen leporinus) ja muista kasviston ja eläimistön edustajista.
Tässä on esimerkki Gabor-suodattimen toteutuksesta Matlab -paketille :
funktio gb = gabor_fn ( sigma_x, theta, lambda, psi, gamma ) sz_x = korjaus ( 6 * sigma_x ); % sigman arvon perusteella sai ytimen koon sz_x = sz_x - mod ( sz_x , 2 ) + 1 ; % jos parillinen - tee siitä pariton sz_y = korjaus ( 6 * sigma_x / gamma ); % sigman ja kertoimen arvon perusteella. pakkaus sai toisen ytimen koon sz_y = sz_y - mod ( sz_y , 2 ) + 1 ; % jos parillinen - tee siitä pariton [ x y ] = meshgrid ( - korjata ( sz_x / 2 ): korjata ( sz_x / 2 ), korjata ( - sz_y / 2 ): korjata ( sz_y / 2 )); % katettu % Kierrä 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 + gamma ^ 2 * y_theta .^ 2 / sigma_x ^ 2 )) * cos ( 2 * pi * x_theta ./ lambda + psi ); % ydintä