Képek és képfeldolgozás
Megjegyzés:
További részletekért tekintse meg a Szöveg és képek lapot!
A számítógépen a kép numerikus képpontértékek tömbje. Vegyük például a következő tömböt:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
A tömb hét sorból és hét oszlopból áll, amelyek egy 7x7 képpontos kép képpontértékeit jelölik (ez a kép felbontása). Minden képpont értéke 0 (fekete) és 255 (fehér) között van; a szürkék árnyalatait jelképező határok közötti értékekkel. A tömb által képviselt kép a következő (nagyított) képhez hasonlít:
A kép képpontértékeinek tömbje kétdimenziós (sorokat és oszlopokat, illetve x és y koordinátákat jelöl), és a képpontértékek egyetlen téglalapját határozza meg. Az ilyen képpontértékek egyetlen rétege szürkeárnyalatos képet jelöl. A valóságban a legtöbb digitális kép többdimenziós, és három rétegből (más néven csatornákból) áll, amelyek piros, zöld és kék (RGB) színárnyalatokat jelölnek. Egy színképet például három olyan képpontérték-csatorna definiálásával jelölhetünk, amelyek ugyanazt a négyzetalakzatot hozzák létre, mint az előző szürkeárnyalatos példában:
Red:
150 150 150 150 150 150 150
150 150 150 150 150 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 255 255 255 150 150
150 150 150 150 150 150 150
150 150 150 150 150 150 150
Green:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Blue:
255 255 255 255 255 255 255
255 255 255 255 255 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 0 0 0 255 255
255 255 255 255 255 255 255
255 255 255 255 255 255 255
Az eredményként kapott kép:
A lila négyzeteket a következő kombináció képviseli:
Red: 150
Green: 0
Blue: 255
A középen lévő sárga négyzeteket a következő kombináció képviseli:
Red: 255
Green: 255
Blue: 0
Szűrők
A képfeldolgozási feladatok végrehajtásának gyakori módja, ha olyan szűrőket alkalmaz, amelyek módosítják a kép képpontértékét, hogy vizuális effektust hozzanak létre. A szűrőt képpontértékek egy vagy több tömbje, az úgynevezett szűrőmagok határozzák meg. Definiálhat például egy 3x3-as kernellel rendelkező szűrőt az alábbi példában látható módon:
-1 -1 -1
-1 8 -1
-1 -1 -1
Ezután a rendszermag konvolválódik a képen, kiszámítva a súlyozott összeget minden 3x3 pixeles részletre, és hozzárendeli az eredményt egy új képhez. Egy lépésenkénti példával könnyebben megértheti, hogyan működik a szűrés.
Kezdjük a korábban feltárt szürkeárnyalatos képpel:
0 0 0 0 0 0 0
0 0 0 0 0 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 255 255 255 0 0
0 0 0 0 0 0 0
0 0 0 0 0 0 0
Először a szűrőmagot a kép bal felső foltjára alkalmazzuk, megszorozva az egyes képpontértékeket a kernel megfelelő súlyértékével, és összeadjuk az eredményeket.
(0 x -1) + (0 x -1) + (0 x -1) +
(0 x -1) + (0 x 8) + (0 x -1) +
(0 x -1) + (0 x -1) + (255 x -1) = -255
Az eredmény (-255) lesz az első érték egy új tömbben. Ezután egy képponttal jobbra mozgatjuk a szűrőmagot, és megismételjük a műveletet:
(0 x -1) + (0 x -1) + (0 x -1) +
(0 x -1) + (0 x 8) + (0 x -1) +
(0 x -1) + (255 x -1) + (255 x -1) = -510
Ismét hozzáadja az eredményt az új tömbhöz, amely most két értéket tartalmaz:
-255 -510
A folyamat addig ismétlődik, amíg a szűrő át nem kerül a teljes képre, ahogy az az animációban látható:
A szűrőt a rendszer átkonvergálja a képre, és kiszámít egy új értéktömböt. Egyes értékek a 0–255 képpontos értéktartományon kívül is lehetnek, ezért az értékek úgy vannak beállítva, hogy illeszkedjenek ebbe a tartományba. A szűrő alakja miatt a képpontok külső széle nem számítható ki, ezért a rendszer egy kitöltési értéket (általában 0) alkalmaz. Az eredményként kapott tömb egy új képet jelöl, amelyben a szűrő átalakította az eredeti képet. Ebben az esetben a szűrőnek az volt a hatása, hogy kiemeli a képen lévő alakzatok széleit .
A szűrő hatásának egyértelműbb megjelenítéséhez íme egy példa a valós képre alkalmazott szűrőre:
| Eredeti kép | Szűrt kép |
|---|---|
|
|
Mivel a szűrő át van fonva a képen, ezt a fajta képmanipulációt gyakran konvolúciós szűrésnek nevezik. Az ebben a példában használt szűrő egy adott szűrőtípus ( laplace szűrő), amely kiemeli a képek objektumainak éleit. Számos más szűrőt is használhat elmosódás, élezés, színinverzió és egyéb effektusok létrehozásához.