Pontműveletek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar 2012. február 20. Sergyán (OE NIK) Pontműveletek 2012. február 20. 1 / 40
Felhasznált irodalom Érdemes elolvasni: Gonzalez, Woods könyv 3. fejezetéből a 75. és 116. oldal közötti részt A diákon látható képek a Gonzalez, Woodz könyből származnak Sergyán (OE NIK) Pontműveletek 2012. február 20. 2 / 40
Képen található információk kiemelése A képfeldolgozási feladatok megvalósítása érdekében első lépésként a képet úgy kell átalakítani, hogy az aktuális feladat szempontjából releváns információkat kihangsúlyozzuk rajtuk Ezt a lépést előfeldolgozási lépésnek nevezzük Az előfeldolgozás történhet: térbeli tartományban ebben az esetben az eljárások direktben a pixel intenzitásokon történnek meg frekvencia tartományban ilyenkor a kép Fourier transzformáltján végzünk műveleteket Sergyán (OE NIK) Pontműveletek 2012. február 20. 3 / 40
Műveletek a térbeli tartományban A térbeli tartományban elvégzett műveletek az egyes pixelek intenzitás értékeit módosítják az alábbi képlet szerint: g(x, y) = T [f (x, y)], ahol f (x, y) a bemeneti, g(x, y) pedig az eredmény kép intenzitása az (x, y) helyen. Ha T csak f adott pontjának intenzitásából számítja ki g megfelelő pontjának intenzitását, akkor pontműveletről beszélünk. Ha T az (x, y), hely egy környezetét is figyelembe veszi, akkor ablakműveletről beszélünk. Sergyán (OE NIK) Pontműveletek 2012. február 20. 4 / 40
Egyszerűsített jelölési mód Az egyszerűség kedvéért pontműveletek esetén a transzformációt az s = T (r) formulával jelöljük, ahol r = f (x, y) és s = g(x, y). Sergyán (OE NIK) Pontműveletek 2012. február 20. 5 / 40
Kontraszt széthúzás (contrast stretching) Az alábbi típusú T esetén az eredmény képen feketék lesznek azok a pixelek, amelyek intenzitása alacsony volt a bemeneti képen fehérek lesznek azok a pixelek, amelyek intenzitása magas volt a bemeneti képen a transzformáció hatására a kép konrasztosabbá válik Sergyán (OE NIK) Pontműveletek 2012. február 20. 6 / 40
Küszöbölés Ha T az ábrán látható típusú, akkor a bemeneti kép m-nél kisebb intenzitású pixelei feketék lesznek az eredmény képen, a többi pixel pedig fehér. Így m mint egy küszöbérték binarizálja az eredeti képet. Sergyán (OE NIK) Pontműveletek 2012. február 20. 7 / 40
Alapvető szürkeségi transzformációk Az ábrán néhány alapvető szürkeségi transzformáció függvénye látható. Identitás Negatív transzformáció n-edik hatvány n-edik gyök Logaritmus Inverz logaritmus L jelöli a lehetséges szürkeségi értékek számát Sergyán (OE NIK) Pontműveletek 2012. február 20. 8 / 40
Negatív transzformáció A transzformáció képlete: s = L 1 r A negatív transzformáció hatására az eredeti képen sötét pixelek világossá válnak, így a kialakuló világos környezetben a részletek jobban érzékelhetők. Sergyán (OE NIK) Pontműveletek 2012. február 20. 9 / 40
Logaritmus transzformációk A logaritmus transzformáció általános alakja s = c log(1 + r), ahol c konstans, r pedig természetesen nem negatív. A transzformáció akkor alkalmazható, ha szűk sötét tartományban értékes információk vannak, amelyeket szeretnénk érzékelhetővé tenni. (Ilyen például a képek Fourier transzformáltjánál fordul elő.) Sergyán (OE NIK) Pontműveletek 2012. február 20. 10 / 40
Hatvány transzformációk A hatvány transzformációk általános alakja: s = cr γ, ahol c és γ pozitív konstansok. A gyakorlatban érdemes inkább s = c (r + ε) γ alakot használni, ahol ε egy kicsi pozitív érték. c = 1 Sergyán (OE NIK) Pontműveletek 2012. február 20. 11 / 40
Gamma korrekció A hatvány transzformáció más elnevezése a gamma korrekció A CRT monitorok a megjelenítés során módosítják a képet, ezért a pontos megjelenítés érdekében ajánlott korrigálni az előálló hibát. Sergyán (OE NIK) Pontműveletek 2012. február 20. 12 / 40
Pe lda hatva ny transzforma cio ra Sergya n (OE NIK) Pontmu veletek 2012. februa r 20. 13 / 40
Példa hatvány transzformációra Sergyán (OE NIK) Pontműveletek 2012. február 20. 14 / 40
Szakaszonként lineáris transzformációk A szakaszonként lineáris transzformációk olyan szürkeségi transzformációk, ahol a transzformációs függvény a bemeneti [0, L 1] intervallum egyes részintervallumain különböző lineáris függvényként adható meg. Néhány példa az alábbi ábrákon látható. Sergyán (OE NIK) Pontműveletek 2012. február 20. 15 / 40
Kontraszt széthúzás T (r) = Ha r 1 = s 1 és r 2 = s 2, akkor az identitás transzformációt kapjuk. Ha r 1 = r 2, s 1 = 0 és s 2 = L 1, akkor küszöbölésről van szó. Általános esetben r 1 r 2 és s 1 s 2, azaz mindegyik részintervallumon monoton növekvő a függvény. Ilyenkor az értékek helyes választásával a számunkra fontos részt emelhetjük ki. s 1 r1 r, ha r [0, r 1 ] s 1 + s 2 s 1 r 2 r 1 (r r 1 ), ha r [r 1, r 2 ] s 2 + L 1 s 2 L 1 r 2 (r r 2 ), ha r [r 2, L 1] Sergyán (OE NIK) Pontműveletek 2012. február 20. 16 / 40
Kontraszt széthúzás Gyakran használt beálĺıtás az (r 1, s 1 ) = (r min, 0), (r 2, s 2 ) = (r max, L 1), ahol r min az eredeti kép minimális, r max pedig a maximális intenzitás értéke. Sergyán (OE NIK) Pontműveletek 2012. február 20. 17 / 40
Küszöbölés Ha r 1 = r 2 = m, ahol m a pixel intenzitások középértéke (pontosabban várható értéke), valamint s 1 = 0 és s 2 = L 1, akkor az alábbi eredményt kapjuk. Sergyán (OE NIK) Pontműveletek 2012. február 20. 18 / 40
Szürkeségi szint vágás Ha egy bizonyos intervallumba eső intenzitású pixeleket szeretnénk kiemelni, akkor alkalmazhatjuk a szürkeségi szint vágást. A bal oldali transzformációs függvény a számunkra érdekes intervallumba eső pixelek intenzitását megnöveli egy konstans értékre, minden más pixel intenzitását pedig egy konstans alacsony szintre csökkenti. A jobb oldali transzformációs függvény hatására az eredeti szürkeárnyalatos értékek megmaradnak, viszont a releváns tartomány intenzitás értékei egy kiugró konstans szintre növekednek. Sergyán (OE NIK) Pontműveletek 2012. február 20. 19 / 40
Szürkeségi szint vágás (példa) Sergyán (OE NIK) Pontműveletek 2012. február 20. 20 / 40
Bit sík vágás Ha feltételezzük, hogy az egyes pixelek 8 biten vannak ábrázolva, akkor az egyes bitsíkok vizsgálatával is lehetőségünk van kiemelésre. A 0. bitréteg az alacsony rendű, a 7. réteg pedig a magas rendű információkat tartalmazza. Sergyán (OE NIK) Pontműveletek 2012. február 20. 21 / 40
Bit sík vágás példa Nyolc bites fraktál kép Sergyán (OE NIK) Pontműveletek 2012. február 20. 22 / 40
Hisztogram feldolgozás A h(r k ) = n k diszkrét függvény egy szürkeárnyalatos kép hisztogramja, ahol r k a k-adik szürkeségi szint a képen, n k pedig azon pixelek száma, amelyek szürkeségi értéke r k. A p(r k ) = n k n érték a normalizált hisztogram, ahol n a pixelek száma. Vegyük észre, hogy az összes lehetséges k-ra összegezve p(r k )-t 1-et kapunk eredményül. Sergyán (OE NIK) Pontműveletek 2012. február 20. 23 / 40
Hisztogram kiegyenĺıtés Tegyük fel, hogy a kép szürkeárnyalatos intenzitásai folytonos függvénnyel írhatók le, oly módon, hogy az intenzitás értékek a [0, 1] intervallumból kerülnek ki. Ebben az esetben r = 0 jelenti a fekete, r = 1 pedig a fehér intenzitás értéket. Tekintsük az s = T (r) (0 r 1) (1) transzformációs függvényt. Tegyük fel, hogy T (r) teljesíti az alábbi feltételeket: 1 T (r) injektív és monoton növekvő a [0, 1] intervallumon; 2 0 T (r) 1, ha 1 r 1. Ebben az esetben létezik a transzformáció inverze is: r = T 1 (s) (0 s 1) (2) Sergyán (OE NIK) Pontműveletek 2012. február 20. 24 / 40
Hisztogram kiegyenĺıtés A T transzformációs függvény például ilyen lehet: Sergyán (OE NIK) Pontműveletek 2012. február 20. 25 / 40
Hisztogram kiegyenĺıtés Egy kép szürkeségi értékeire tekinthetünk úgy is, mint valószínűségi változókra a [0, 1] intervallumban. Ebben az esetben az r valószínűségi változónak létezik sűrűség függvénye, amelyet p r (r)-rel jelölünk. Hasonlóan van az s valószínűségi változónak is sűrűség függvénye, amelyet pedig p s (s) jelöl. Valószínűségszámításból tudjuk, hogy p s (s) = p r (r) dr ds, (3) azaz az s sűrűségfüggvényét meghatározza az r sűrűségfüggvénye és a két valószínűségi változó közötti transzformáció. Sergyán (OE NIK) Pontműveletek 2012. február 20. 26 / 40
Hisztogram kiegyenĺıtés Tekintsük azt a transzformációs függvényt, amely az alábbiakat teljesíti: s = T (r) = r 0 p r (ω)dω, (4) ahol ω az integrálási változó. Vegyük észre, hogy a jobb oldalon álló integrál pont az r valószínűségi változó (kumulatív) eloszlásfüggvénye. Könnyen belátható, hogy az így definiált T (r) teljesíti a két korábban megfogalmazott feltételt. Sergyán (OE NIK) Pontműveletek 2012. február 20. 27 / 40
Hisztogram kiegyenĺıtés Vizsgáljuk az előbb definiált T (r)-t. ds dt (r) = = d dr dr dr r 0 p r (ω)dω = p r (r), (5) a Newton-Leibniz szabály miatt. Ebből viszont már következik: p s (s) = p r (r) dr ds = p r (r) 1 p r (r) = 1, (6) ha 0 s 0. Tehát azt kaptuk, hogy a választott T (r)-t használva az s valószínűségi változó egyenletes eloszlású függetlenül attól, hogy milyen volt r eloszlása. Sergyán (OE NIK) Pontműveletek 2012. február 20. 28 / 40
Hisztogram kiegyenĺıtés Előzőek alapján felmerül a kérdés, hogy milyen módon lehet egy diszkrét intenzitás értékekkel rendelkező kép intenzitás értékeit úgy transzformálni, hogy a transzformált kép intenzitás eloszlása (közel) egyenletes eloszlású legyen. A folytonos esetben vizsgált sűrűség függvénynek diszkrét esetben a normalizált hisztogram felel meg: p r (r k ) = n k n (k = 0, 1, 2,..., L 1) (7) Alkalmazzuk a (kumulatív) eloszlásfüggvény diszkrét változatát: s k = T (r k ) = ahol k = 0, 1, 2,..., L 1. k p r (r j ) = j=0 k j=0 n j n, (8) Sergyán (OE NIK) Pontműveletek 2012. február 20. 29 / 40
Hisztogram kiegyenĺıtés eredménye Sergyán (OE NIK) Pontműveletek 2012. február 20. 30 / 40
Az egyes alkalmazott transzformációk Sergyán (OE NIK) Pontműveletek 2012. február 20. 31 / 40
Hisztogram illesztés (histogram matching) Hisztogram illesztés esetén az a célunk, hogy az eredeti kép szürkeárnyalatos intenzitás értékeit úgy transzformáljuk, hogy a transzformált képen lévő intenzitások (valószínűségi) eloszlása egy előre meghatározott eloszlást kövessen. Sergyán (OE NIK) Pontműveletek 2012. február 20. 32 / 40
Hisztogram illesztés Kezdetben tekintsük megint a folytonos esetet. A bemeneti képen az egyes intenzitásokat jelölő valószínűségi változó legyen r (0 r 1), ennek sűrűségfüggvénye pedig p r (r). A transzformált képen z jelölje az intenzitás értékeket, sűrűségfüggvénye legyen p z (z). A korábbi levezetésből tudjuk, hogy s = T (r) = r 0 p r (ω)dω (9) egyenletes eloszlású. Mivel ez bármilyen valószínűségi változó esetén igaz, így G(z) = z 0 p z (t)dt = s (10) is egyenletes eloszlású. Ebből viszont G(z) = T (r) következik, azaz z = G 1 (s) = G 1 [T (r)] (11) Sergyán (OE NIK) Pontműveletek 2012. február 20. 33 / 40
Hisztogram illesztés Vizsgáljuk most a (valós) diszkrét esetet. Tudjuk, hogy Hasonlóan: Ebből pedig: s k = T (r k ) = k p r (r j ) = j=0 v k = G(z k ) = Nem biztos, hogy v k = s k teljesül! k j=0 n j n. (12) k p z (z i ) = s k (13) i=0 z k = G 1 [T (r k )] (14) Sergyán (OE NIK) Pontműveletek 2012. február 20. 34 / 40
Hisztogram illesztés Sergyán (OE NIK) Pontműveletek 2012. február 20. 35 / 40
Hisztogram illesztés Hogyan találhatjuk meg az s k -hoz tartozó z k -t? Egyáltalán nem biztos, hogy van olyan z k, melyre G(z k ) s k = 0 (15) teljesül. Keressük ezért az ideális z k -hoz közeli létező ẑ-t, mely teljesíti a G(ẑ) s k 0 (16) feltételt. Ezt úgy tehetjük meg, ha ẑ = 0-tól indulva, addig növeljük egyesével ẑ értékét, amíg igazzá nem válik a fenti feltétel. Javíthatunk az eljáráson, ha az s k -hoz tartozó ẑ-t a megtalált z k 1 -től növeljük csak. Sergyán (OE NIK) Pontműveletek 2012. február 20. 36 / 40
Hisztogram illesztés Az algorimus: 1 Határozzuk meg az eredeti kép hisztogramját. 2 Minden r k értékhez előre számítsuk ki a megfelelő s k értéket: s k = 3 Határozzuk meg a G transzformációs függvényt az adott p z (z)-ből: G(z k ) = k j=0 n j n (17) k p z (z i ) (18) i=0 4 Előre számítsuk ki z k -t az összes előforduló s k -hoz a összefüggést használva. G(ẑ) s k 0 (19) 5 Az eredeti kép minden r k pixeléhez rendeljük hozzá az előre meghatározott s k -t, illetve z k -t. Sergyán (OE NIK) Pontműveletek 2012. február 20. 37 / 40
Példa hisztogram operációra Bemeneti kép és a hisztogramja Sergyán (OE NIK) Pontműveletek 2012. február 20. 38 / 40
Példa hisztogram operációra Hisztogram kiegyenĺıtés eredménye Sergyán (OE NIK) Pontműveletek 2012. február 20. 39 / 40
Példa hisztogram operációra Hisztogram illesztés eredménye Sergyán (OE NIK) Pontműveletek 2012. február 20. 40 / 40