Vissza az előzőleg látogatott oldalra (nem elérhető funkció)Vissza a tananyag kezdőlapjára (P)Ugrás a tananyag előző oldalára (E)Ugrás a tananyag következő oldalára (V)Fogalom megjelenítés (nem elérhető funkció)Fogalmak listája (nem elérhető funkció)Oldal nyomtatása (nem elérhető funkció)Oldaltérkép megtekintése (D)Keresés az oldalon (nem elérhető funkció)Súgó megtekintése (S)

Open source fejlesztő eszközök, elméleti rész / Különféle digitális szűrők

Tanulási útmutató

Összefoglalás

Számos digitális szűrő létezik, amelyek közül csak néhány ismertebb változatot mutatunk be ebben a leckében. A bemutatandó szűrők mind az időtartományban működnek.

Követelmény

Az ismeretek elsajátítása, az ellenőrző kérdések sikeres megválaszolása

Különféle digitális szűrők

Konvolúciós szűrők

Jelölje f1 (t) a konvolválandó függvényt, és f2 (t) a kernelt. A konvolúciós, vagy lineáris szűrők úgy működnek, hogy a kernelben szereplő értékekkel konvolválják az időfüggvényt, és ez lesz a konvolúvió értéke a t-edik helyen:

Kétdimenziós esetre, mint amelyen a digitális kép, a konvolúció a következőképpen alakul:

A kép (nagyobb változata) külön ablakban is megtekinthető.62. ábra. A négyszögimpulzus a felülvágó szűrő átviteli függvénye a frekvencia tartományban (az egyszerűség kedvéért egy egydimenziós időfüggvényt látunk62_negyszfv_full.png62. ábra. A négyszögimpulzus a felülvágó szűrő átviteli függvénye a frekvencia tartományban (az egyszerűség kedvéért egy egydimenziós időfüggvényt látunk

A szűrő átviteli karakterisztikáját a kernelben lévő értékek határozzák meg, amelyek egyébként az átviteli függvény inverz Fourier-transzformáltjának diszkrét értékeiből állnak.

A kép (nagyobb változata) külön ablakban is megtekinthető.63. ábra. A négyszög impulzus inverz Fourier-transzformáltja a sinc függvény az időtartományban63_sincfv_full.png63. ábra. A négyszög impulzus inverz Fourier-transzformáltja a sinc függvény az időtartományban

A szemléletesség kedvéért nézzünk meg egy f_f felső határfrekvenciájú felülvágó szűrőt. A szűrő átviteli függvényét mutatja a 62. ábra, illetve ennek inverz Fourier-transzformáltját a 63. ábra, amely megfelelően mintavételezve adja a kernelbe töltendő együtthatókat.

Ezzel a kernellel végrehajtva a konvolúciót kapjuk a konvolúciós szűrőket. Átviteli karakterisztikájuk a kernel tartalmától (vagyis a frekvenciatartományban definiált átviteli függvénytől) függ. Két dimenzióban, mint amilyen a digitális kép, a kernel a 2D-s sinc függvény, amely a 64. ábrán látható. A kernel képen történő mozgását mutatja sematikusan a 65. ábra.

A kép (nagyobb változata) külön ablakban is megtekinthető.64. ábra. A kétdimenziós sinc függvény, amelynek mintavételezett értékeiből áll a simító szűrő kernelje64_sinc2d_full.png64. ábra. A kétdimenziós sinc függvény, amelynek mintavételezett értékeiből áll a simító szűrő kernelje
A kép (nagyobb változata) külön ablakban is megtekinthető.65. ábra. Az erősen felnagyított kernel mozgása a képen (LANDSAT képrészlet)65_kernelmozgas_full.png65. ábra. Az erősen felnagyított kernel mozgása a képen (LANDSAT képrészlet)

Vissza a tartalomjegyzékhez

Szeparábilis szűrők

Ha a kernelmátrix speciális alakú, akkor a konvolúció végeredményét lényegesen gyorsabban számolhatjuk ki. Ha fennáll, hogy a w kernelmátrix felbontható egy oszlop- és egy sorvektor szorzatára, azaz w(i,j)=u(i) x v(j), akkor megtehetjük azt, hogy először kiszámoljuk a kép u-val vett konvolúcióját, majd az eredmény v-vel vett konvolúcióját, azaz

és ebből

Box szűrő

A box szűrő olyan speciális kernelű szűrő, ahol a kernelmátrixban szereplő összes érték ugyanannyi, vagyis a kernel alá eső pixeleket átlagoljuk. A box szűrő hatása a kép simítása. Önmagában nem ad túl jó eredményt, de más szűrőkkel kombinálva (pl. élmegőrzők) hasznos eszköz lehet. Egyszerűségének köszönhetően igen népszerű szűrő, annak ellenére, hogy a spektrumra gyakorolt hatása meglehetősen kedvezőtlen. (Ha meggondoljuk, ilyenkor az időtartományban egy négyszögfüggvénnyel végezzük a konvolúciót, aminek az átviteli függvénye, a frekvencia tartományban egy sinc függvény, amiről minden elmondható, csak az nem, hogy értelmezhető lenne rá felső határfrekvencia).

Gauss-szűrő

A Gauss-szűrő kernelében az értékek a kétdimenziós Gauss-eloszlás értékei szerepelnek. A Gauss-eloszlás a következőképp számolható:

Így a 0 várható értékű, σ szórású Gauss-görbét kapunk, amelyből a kernelt úgy számoljuk, hogy a rácspontokon mintavételezzük a G függvényt. Mivel

ezért a Gauss-szűrő is szeparábilis, az u és v vektor a következőképp számolható:

A Gauss szűrőnek létezik egy speciális, még gyorsabb implementációja. Ha a haranggörbe értékeit 2 hatványaival közelítjük, akkor nem kell szoroznunk, amikor a konvolúciót végezzük, hanem megfelelő számú bittel kell csak eltolni az értékeket. Ekkor az u és v vektorok

alakúak lesznek.

A Gauss-szűrő, mint látható, simító jellegű. A simítás mértéke a szórás nagyságától függ, természetesen nagy szórás esetén a kernel méretét is növelni kell (66. ábra). A Gauss-szűrőnek szintén nem önmagában, hanem más algoritmusokban van szerepe, pl. a Canny-féle éldetektorban használjuk. Átviteli függvénye, ha nem is ideális, de lényegesen jobb a box szűrőnél. Gyakran használják „csonkító” függvényként, amivel például az ideális felülvágó kerneljének a hosszát csökkentik le, ezáltal javítva a futásidőt. (Ne feledjük, hogy ebben egy sinc függvény van mintavételezve.)

A kép (nagyobb változata) külön ablakban is megtekinthető.66. ábra. Balról jobbra: Eredeti kép. A kép 3x3-as, Gauss-szűrt változtatás σ=1.0. A kép 7x7-es, box-szűrt változata. A kép 7x7-es Gauss-szűrt változata, σ =2.066_gauss_szurt_full.png66. ábra. Balról jobbra: Eredeti kép. A kép 3x3-as, Gauss-szűrt változtatás σ=1.0. A kép 7x7-es, box-szűrt változata. A kép 7x7-es Gauss-szűrt változata, σ =2.0

Hátránya, hogy a simítás miatt a képen található élek elmosódottá válnak a felső határfrekvencia függvényében. Ha meggondoljuk, nem meglepő ez az eredmény, hiszen a spektrumból eltávolítjuk a nagyfrekvenciás részeket, márpedig az éleken éppen a nagyfrekvenciás összetevők játsszák a legfőbb szerepet.

A Gauss-szűrő segítségével lehetséges a képek méretének egyszerű csökkentése (felezése). Az algoritmus úgy működik, hogy a kiinduló képre alkalmazzuk a Gauss-szűrőt, majd elhagyjuk minden második sort és oszlopot. Az így létrejövő folyamatosan feleződő képeket Gauss-piramisnak is nevezik. A Gauss-piramisban az egymás feletti képeket egymásból kivonva a heterogén részek felerősödnek, ez a tulajdonság jól használható a textúrák detektálásánál.

Nemszeparábilis szűrők

A nemszeparábilis szűrők azok, melyek kernelmátrixa nem írható fel két vektor szorzataként. Ilyenkor az eredeti konvolúciós képletben szereplő összegzést kell megvalósítani.

Vissza a tartalomjegyzékhez

Új Széchenyi terv
A projekt az Európai Unió támogatásával, az Európai Szociális Alap társfinanszirozásával valósul meg.

A Társadalominformatika: moduláris tananyagok, interdiszciplináris tartalom- és tudásmenedzsment rendszerek fejlesztése az Európai Unió támogatásával, az Európai Szociális Alap társfinanszírozásával, az ELTE TÁMOP 4.1.2.A/1-11/1-2011-0056 projekt keretében valósult meg.
A tananyag elkészítéséhez az ELTESCORM keretrendszert használtuk.