3. Alapműveletek 3.1. Képstatisztikai jellemzők A digitális képek feldolgozásának sokszor fontos előfeltétele, hogy alapos statisztikai vizsgálatnak vessük alá őket. A vizsgálatok eredményeként kapott számértékeket néhány feldolgozó szoftver tárolja, így szükség esetén újraszámítás nélkül is állandóan rendelkezésre állnak. Többnyire táblázatos formában közlik a jellemzőket, melyeket két csoportba sorolhatunk. Ezek a következők:
Leíró adatok: •8 sorok és oszlopok száma pixelben [n,m] •8 a képet alkotó összes pixel száma •8 a pixel mérete (a kép geometriai felbontása) hosszúság- illetve területegységben •8 a kép által lefedett terület nagysága hosszúság- illetve területegységben •8 tárolási formátum •8 a tömörítés módja, mértéke •8 a képpiramis megléte •8 a kép készítésének, utolsó módosításának időpontja •8 a képalkotó eszköz megnevezése, típusa •8 színmélység (radiometriai felbontás) a lehetséges minimális és maximális értékkel [minT, maxT] •8 sávok száma (a kép spektrális felbontása), a sávok elhelyezkedése a spektrumtartományban [s] Egyetlen sávval számított adatok: •8 minimális és maximális előforduló intenzitásérték:
I min = min( I ij ) I max = max( I ij )
i = 1… n, j = 1… m
(1)
melyre igaz (2)
minT ≤ I min < I max ≤ maxT •8
intenzitásdinamika (range):
δ = I max − I min •8
átlagos intenzitás: n
I = •8
(3)
m
I
ij
i =1 j =1
(4)
n⋅m
variancia és annak négyzetgyöke, a szórás:
66
n
v= •8
•8 •8
n
m
( I ij − I ) 2 i =1 j =1
n ⋅ m −1
illetve σ = v =
m
( I
ij
− I )2
i =1 j =1
(5)
n ⋅ m −1
medián: páratlan pixelszám esetén a nagyság szerint növekvő sorrendbe állított intenzitásértékek középső eleme, páros pixelszámnál a két középső elem számtani középértéke módusz: a legnagyobb gyakoriságú intenzitásérték kontraszt: többféle lehetséges definíciója van, ezek •8 az aránykontraszt, amely a maximális és minimális intenzitásérték hányadosa
cR = •8
a logaritmikus kontraszt, mely az aránykontraszt módosítása
I c L = log10 max I min •8
(7)
az univerzális vagy differenciális kontraszt
cD = •8
(6)
I max I min
(8)
I max − I min I min
szóráskontraszt
c =σI •8 •8
(9)
jel-zaj arány (SNR)1, amelyet alapvetően kétféleképpen lehet definiálni: ha ismerjük a jel szélsőértékeit (Imin, Imax), ekkor (10)
I − I min SNR = 20 ⋅ log 10 max σ •8
ha a jel sztochasztikus (11)
I SNR = 20 ⋅ log10 σ
Több sáv statisztikai mérőszámai: •8 átlagvektor:
1
ang. Signal to Noise Ratio
67
ª I1 º «I » I = « 2» «» « » ¬I s ¼ •8
(12)
kovariancia: n
c kl =
m
( I
− I k ) ⋅ ( I lij − I l )
kij
i =1 j =1
(13)
n ⋅ m −1
és igaz, hogy
(14)
c kl = clk
továbbá, ha k = l n
c kk = •8
m
( I kij − I k ) ⋅ ( I kij − I k ) i =1 j =1
=
m
( I
kij
− Ik )2
i =1 j =1
= σ k2
n ⋅ m −1
(15)
kovarianciamátrix: a sávpáronként számított kovarianciák együttes kezelése ªσ 12 c12 « c σ 22 C = « 21 « « «¬ c s1 c s 2
•8
n ⋅ m −1
n
… c1s º » … c2 s » » » … σ s2 »¼
(16)
korrelációs együttható (korrelációs koefficiens): n
c kl rkl = = σ k ⋅σ l
c kl c kk ⋅ cll
=
m
( I
kij
− I k ) ⋅ ( I lij − I l )
i =1 j =1
n
m
n
m
( I kij − I k ) 2 ⋅ ( I lij − I l ) 2 i =1 j =1
(17)
i =1 j =1
és igaz, hogy (18)
rlk = rkl
továbbá (19)
− 1 ≤ rkl ≤ 1
68
és (20)
rkk = 1 •8
korrelációs mátrix: a sávpáronként számított korrelációs együtthatók együttes kezelése ª1 «r R = « 21 « « ¬ rs1
r12 1 rs 2
… r1s º … r2 s »» » » … 1¼
(21)
Jellemzés diagramokkal: •8 hisztogram: sávonkénti tapasztalati gyakoriságfüggvény; a vízszintes tengelyen az intenzitásértékek szerepelnek nagyság szerint növekvő sorrendben, a függőleges tengelyen azok gyakorisága található. A gyakoriságok lehetnek abszolút gyakoriságok, amikor az adott intenzitásérték összes előfordulását mutatja valamint lehet relatív gyakoriság, amikor az összes előforduló gyakoriságot a teljes pixelszámmal normáljuk. Ez a normált hisztogram. Előnye, hogy eltérő pixelszámú képeket össze lehet hasonlítani.
58. ábra Kép hisztogramja •8
kumulált hisztogram: a hisztogram egymás után következő intenzitásértékeinak darabszámai halmozódnak, vagyis az i. gyakorisághoz az i-1. gyakoriságot hozzá kell adni.
69
59. ábra Kumulált hisztogram •8
pontdiagram (scattergram): a sávpáronként előforduló intenzitáskombinációk szemléltetése. A vizsgált két sáv azonos helyén található pixel intenzitásértékeit koordinátáknak tekintve, az előforduló kombináció helyét megjelenítjük. Van olyan változata is, ahol az előfordulás gyakoriságát színkódolással fejezik ki. A l. és k. sávra készült pontdiagram képe transzponáltja a k. és l. sáv pontdiagramjának.
60. ábra Pontdiagram •8
pontdiagram-mátrix: minden sávpárra számított pontdiagram. A mátrix felső háromszögét szokás megadni.
70
61. ábra Pontdiagram-mátrix •8
3D pontdiagram: három sáv felhasználásával készült pontdiagram. Alkalmazása ritka, szerepe inkább csak az intenzitástér szemléltetésében van.
62. ábra 3D pontdiagram 3.2. Képmetszetek
Az intenzitásértékek finom különbségét könnyen szemléletessé tehetjük, ha a hely függvényében ábrázoljuk (intenzitásmetszet). A 63. ábra a részén látható profil mentén eső intenzitásértékeket a b részen ábrázoltuk. Jól látszik, ahogy a víznél (Duna) az intenzitásértékek ugrásszerűen lecsökkennek.
71
b) az intenzitások változása a profil mentén a) képrészlet a profilvonallal 63. ábra Az intenzitásmetszet értelmezése Ha az ábrán látható intenzitásmetszetet általánosítjuk, a képet alkotó pixelekben az intenzitásfelület magasságai szerepelnek. Ezt a felületet ábrázolva szemléletesek a már említett finom különbségek.
a) képrészlet b) felületszerű megjelenítés 64. ábra Az intenzitások, mint felületelemek A képmetszet témakörébe tartozik a spektrális metszet fogalma is. Ebben az esetben az egyes képalkotó sávokból „metszük” ki az értékeket ugyanarra a geometriai helyre vonatkozóan s ábrázoljuk a sávazonosító vagy a sávhoz tartozó hullámhossz függvényében. Néhány jellegzetes, meglehetősen eltérő borítású pixel metszetét mutatja a 65. ábra.
72
b) spektrális metszet a sávazonosító függvényében a) a kép néhány pixelje
d) spektrumgörbék (NASA JPL)
c) spektrális metszet a hullámhossz függvényében
65. ábra A spektrális metszet A spektrális metszeten látható eltéréseket használjuk ki a tematikus osztályozásnál, ahol a tapasztalható különbségek alapján választjuk ki az ugyanolyan csoportba tartozó képpontokat. A hiperspektrális képalkotókkal (pl. AVIRIS) készült felvételek feldolgozásában a spektrális metszet kulcsfontosságú. A függvényt egészen finoman meghatározzák s könyvtárakban gyűjtik össze a jellegzetes, felszínt borító vegetáció, talaj jelleggörbéjét. A NASA JPL2 gyűjteményéből néhány metszet látható az ábra d részén. 3.3. A LUT és műveletei
A képek megjelenítésekor a fizikailag tárolt intenzitásértékeket hozzá kell rendelni a megjelenítő eszköz – például a képernyő – színárnyalataihoz. Ennek a hozzárendelésnek a függvényét áttekintő táblázat-ban, angolul Look Up Table (LUT) szokás megadni. Néhány szerző map-nek, leképezésnek hívja. A LUT felhasználásával lényegében a kép fizikai tartalmától függetlenül lehet a megjelenítéskor eljárni; különböző képmanipulációk hajthatók végre anélkül, hogy az intenzitásértékeket módosítani kellene. Nagyobb, néhány ezerszer néhány ezer 2
Jet Propulsion Laboratory
73
pixelből álló kép esetén is csupán a véges, nagyságrendekkel kisebb táblázatot kell módosítani. Emiatt a LUT manipulálásával végrehajtott műveletek rendkívül gyorsak. A képfeldolgozó programcsomagokban megtalálható világosítás-sötétítés állítása többnyire tolóka segítségével történik, a módosítás hatását szinte azonnal követi a kép s lehet látni a változást. A LUT tehát a bemenő intenzitásértékekből megjelenítési színárnyalatot előállító függvény. Egyetlen sávra a következő ábrán lehet tanulmányozni.
66. ábra A LUT, mint függvény értelmezése Az ábrán láthatóan a vízszintes tengelyen nagyság szerinti sorba rendezetten találhatók a tárolt, bemenő intenzitásértékek. A függvény ezekből az értékekből adja meg a kimenő, megjelenítési színárnyalatot a függőleges, szintén nagyság szerint növekvő sorban található skálán. Tuéajdonképpen a kimenő árnyalatokat tekinthetjük kimeneti intenzitásértékeknek is. A következőkben elsőként fekete-fehér, azaz monokróm, egysávos képre nézzük meg, hogy a LUT-ra vonatkozó módosítások, amelyeket LUT-műveleteknek nevezünk, milyen hatást fejtenek ki a képre. A fekete-fehér eset alapján a módszert általánosíthatjuk többsávos képekre. A LUT-táblázatok tárgyalása során a leggyakoribb 8-bites radiometriai felbontással foglalkozom. Hozzá kell tenni természetesen, hogy a függvény-módosítások értelmezhetők más radiometriai felbontás (színmélység) esetén is. Az alapesetekben a függvény a 67. ábrán látható módon egységnyi meredekséggel, az intenzitásértékeket változatlanul megőrizve működik, a fizikailag tárolt számértékeknek megfelelő színek jelennek meg közvetlenül. Mivel semmilyen mértékben nem változtattunk a függvényen, így ez a „torzítatlan”, de ugyanakkor korrigálatlan megjelenítés. Ekkor a 0 intenzitásértékhez a fekete színt, a 255. intenzitásértékhez a fehéret rendeljük. A két szélső helyzet között egyenletesen, lineárisan változnak a szürke árnyalatai.
74
67. ábra A torzítatlan megjelenítés Ha a 68. ábra a részén látható módon a LUT-függvény hamarabb éri el a felső korlátot, a kép fényesedni kezd, világosabbá és kontrasztosabbá válik. Ehhez hasonlóan kontrasztosodik, de sötétedik a kép a b rész függvénye miatt. Mindkétszer a függvény meredeksége nőtt az eredeti egységnyi meredekséghez képest (szaggatott vonal), ez okozza a kontraszt fokozódását.
a) kontrasztfokozás és világosítás
b) kontrasztfokozás és sötétítés
c) kontrasztcsökkentés és világosítás
d) kontrasztcsökkentés és sötétítés
68. ábra Kontraszt és világosság-módosítás Ezzel éppen ellentétes, amennyiben a függvény meredekségét csökkentjük: szürkébbé, fátyolosabbá, tehát kontrasztszegényebbé válik a kép (68. ábra c és d rész). A 69. ábrán bemutatott alapesetek kombinálhatók. A különböző variációk révén a kép kontrasztját erősebb mértékben lehet növelni (kontrasztfokozás) vagy csökkenteni (kontraszt-csökkentés) (a és b rész) és sötétíteni vagy világosítani (c és d rész).
75
b) kontraszt-csökkentés
a) kontrasztfokozás
c) sötétítés d) világosítás 69. ábra Lineáris alapkombinációk A 70. ábra a függvényének speciális esete a lépcsőfüggvény. Az intenzitásértékeket két csoportra lehet osztani, vagyis bináris képet lehet előállítani. Ezt a különleges megoldást nevezzük küszöbölésnek (thresholding). A tiszta fekete és fehér átmenetet a víszintes tengelyhez tartozó küszöb határozza meg (70. ábra a része). Ezt az eszközt a gyorsan kivitelezhető, egyszerű, de nem túlzottan pontos tematikus információnyerésre jól lehet használni.
a) bináris kép előállítása egyetlen küszöbbel
b) több küszöb használata 70. ábra Küszöbölés 76
Egyetlen küszöböt használnak a folytonos képalkotású szkennerek, amikor bináris képet készítenek. Amikor pedig halftone kép készül, egyenletes felbontású, szabályos lépcsőfüggvénnyel (több küszöb-eset) operálnak. A küszöböléshez hasonlít az intenzitásvágás (density slice). Segítségével az intenzitásértékek egy részét el lehet hagyni, pontosabban a lényegtelennek tekintett tartományt feketével jelenítjük meg. Alsó és felső küszöb felhasználásával intenzitássávot lehet kiemelni vagy elnyomni. (71. ábra)
a) a sávkiemelés két változata: az eredeti intenzitás megtartása illetve bináris képpé alakítás
b) sávelnyomás 71. ábra Az intenzitásvágás fajtái és hatásai Az intenzitásvágás az interpretáció igen hasznos eszköze. Ha egy vizsgálandó felszínfolthoz színben azonos felületeket keresünk, például erdőket szeretnénk kiemelni, az intenzitásvágást használhatjuk. A képen kijelölt maszk alá eső pixelek alapján meghatározhatjuk azok minimumát és maximumát, majd e két számmal módosítjuk a LUT-függvényt. Az intenzitásvágás így kiemeli az erdővel azonos színű pixeleket. A képen fellépő adott színű zajok eltávolítása a zaj minimális és maximális színtartományának kivágásával történik. Multispektrális kép sávjain külön-külön végrehajtott intenzitásvágás eredményképeit kombinálva (overlaying) gyorsan, viszonylag pontos feldolgozást hajthatunk végre. Az eljárás eredménye a box-osztályozóval kapott képpel egyezik meg az adott tematikára. A művelet egyszerűen és gyorsan paraméterezhető, hamar tematikus információ nyerhető. Természetesen pontos térképezési igény esetén más, például osztályozó eljárást kell választani. A függvény meredekségét szakaszosan is lehet módosítani. Hatását a 72. ábra mutatja.
77
72. ábra Szakaszosan változó meredekségű LUT A negatív meredekségű LUT a képet invertálja (73. ábra).
73. ábra Kép inverze Gyakran a szoftverek görbéket is megengednek LUT-függvényként. Klasszikus példája az γ
x f ( x) = 255 ⋅ 255 hatványfüggvény, melynek γ = 1 esete megegyezik a normál torítatlan megjelenítéssel. Amennyiben γ < 1, a kép világosodik (74. ábra a rész), ha γ > 1, a kép sötétedik (74. ábra b rész). A változó együttható következtében ezt a műveletet gamma-műveletnek nevezik. A megadott összefüggéstől eltérő, de hasonló hatású gamma-műveletekkel is lehet találkozni.
78
a) világosítás
b) sötétítés 74. ábra A gamma-műveletek hatása Színes, RGB-képek esetén az egyes színösszetevőkre külön-külön kell LUTfüggvényt kezelni. Íly módon az alapszínek hatását külön is lehet változtatni. Zavaró vörös színű zajforrást így ki lehet vágni, feltéve ha ha korlátozott intenzitástartományban működik. A LUT alkalmazásának igazi rugalmasságát a maszkolással kombinált megoldás adja. A kép eltérő, csatlakozó részeire külön definiált maszkokat lehet rajzolni. A LUTműveleket csupán egy-egy maszkra hajtjuk végre. Ezzel az eljárással a kép eltérő részeinek különbözőképpen módosított megjelenítését tudjuk elérni. A maszkolás és a háromszínű LUT kezelésével régi képek, térképek eredeti színeit lehet "visszavarázsolni". 3.4. Hisztogram-műveletek
A hisztogram manipulálásával igen sok kép válik használhatóvá, lehet tartalmát kinyerni. A hisztogram-műveletek lényege, hogy a kép módosítását hisztogramja alapján határozzuk meg. Többnyire sötét, kontrasztszegény képek esetén használjuk ezeket a műveleteket. Az egyik lehetséges művelet a hisztogram-vágás (clip). Lényegében megegyezik a LUT-vágás művelet eredményével. A vágásnak több megoldása lehetséges: •8 •8 •8
a hisztogram aljának vágása: a hisztogram minimális intenzitásértékű szélének elhagyása a hisztogram tetejének vágása: a hisztogramban található maximális intenzitásértékű szél elhagyása a hisztogram mindkét végének vágása: mind a minimum, mind a maximum értéktől egyaránt a hisztogram belseje felé történő vágás.
79
A vágáshoz vagy az elhagyandó intenzitásértékek határát vagy a vágás során kikerülő pixelek százalékát lehet megadni. Például a hisztogram mindkét széléből 10 % levágával keletkezett a 75. ábra b része.
a) eredeti kép és hisztogramjának vágóhatárai
b) a módosított kép és hisztogramja 75. ábra A hisztogram-vágás művelete Nagyon jelentős a hisztogram-széthúzás (stretch) művelete. Ekkor két megadott intenzitásérték közötti tartományt vágunk ki a hisztogramból, majd a hisztogramot a teljes intenzitástartományra képezzük le. Matematikailag tehát az ij helyzetű pixel új intenzitásértéke a következők szerint számítható: xij′ =
255 (xij − k a ) k f − ka
ahol xij a régi intenzitásérték, k a az alsó, k f pedig a felső korlát a széthúzásnál. A széthúzással a kis intenzitáskülönbségek megnövekednek, ezáltal érzékelhetővé válnak. Az új kép hisztogramja a széthúzás következtében a teljes intenzitástartományra terül szét, viszont jóval ritkábbá válik. A 76. ábra a széthúzást és annak hatását illusztrálja.
80
a) a széthúzás végrehajtása
b) a széthúzás hatása 76. ábra A hisztogram-széthúzás A képek megjelenítésekor gyakran használt megoldás a szórás alapján történő hisztogram-vágás és -széthúzás. A közel normális eloszlású képeken tökéletesen működik az eljárás. Alapfeltételezés, hogy a képet alkotó pixelek a normális eloszlástól nem túl nagyon különböznek. Ebben az esetben a hisztogram legmagasabb pontja vagyis a legnagyobb gyakoriságú intenzitásérték az átlaghoz közel esik. A szórás alapján történő vágáskor – a jele után σ-vágás (σ-clip) – az átlagtól jobb és baloldalra a szórás mértéke alapján vágunk (77. ábra), majd a maradék részt széthúzzuk a teljes intenzitástartományra (76. ábra).
77. ábra A σ-vágás alapja 81
A statisztikából ismert, hogy az egyes szórásértékek a mérésben szereplő mennyiségek mekkora valószínűségével (p) szerepelnek. p 68.3 % 95.5 % 99.7 %
1σ 2σ 3σ
13. táblázat Az egyes szórásokhoz tartozó valószínűségek A σ-vágásban az alsó és felső korlátot az intenzitásértékek átlagából és szórásának 1szereséből, 2-szereséből vagy 3-szorosából számíthatjuk. az alábbi képletnek megfelelően: xij′ =
[
255 xij − ( x − nσ ) ( x + nσ ) − ( x − nσ )
]
ahol n = 1, 2, 3, továbbá ha elvégezük az egyszerűsítéseket, a következő alakú összefüggést kapjuk: xij′ =
[
]
255 xij − ( x − nσ ) . 2 nσ
A kerek szórásértékek (1σ, 2σ, 3σ) alapján végrehajtott vágás, majd széthúzás a következőket eredmányezi a képen. Jól észrevehetően, az egyre nagyobb szigmatartomány egyre több intenzitásértéket tartalmaz, ezért a kép jobb minőségű, hisztogramja több színértékből áll. Az egy-szigmával vágott hisztogram csupán az összes eredeti pixel 68 %-a alapján keletkezik, ez a kevesebb finom intenzitáskülönbség helyett durva kiválasztást, kontrasztosabb, de sötétebb képet ad.
82
a) az 1σ szerinti vágás
b) a 2σ szerinti vágás
c) a 3σ szerinti vágás 78. ábra A hisztogram szórás szerinti vágása (Az eredeti kép intenzitásátlaga 68.71, szórása 16.06) Szép képet ad az az eljárás, ha a hisztogramon a vágóvonalat vízszintesen, tehát a gyakoriság alapján húzzuk meg. Ez a vágás küszöbbel. A kapott hisztogram minimális és maximális intenzitásértékeit korlátnak tekintve fogjuk a hisztogramot széthúzni. A már említettek szerint vagy előre megadott gyakoriságnál húzódik a határ vagy pedig százalékban (ezrelékben) kell megadni a vágóvonalat.
83
c) a kapott eredménykép a) az eredeti hisztogram 2 ‰-es vágási küszöbbel (az alsó korlát 36, a felső 97)3
b) a széthúzás után keletkezett új hisztogram
79. ábra A küszöbbel végrehajtott hisztogram-vágás A legtöbb könyvben, így ebben is, az illusztrációk képeinek hisztogramjait megváltoztatják a jobb, esztétikusabb megjelenítés érdekében. Ezzel természetesen nagyon sokat nyerünk, de számítógéppel végrehajtott tematikus térképezésnél, osztályozásnál és ehhez hasonló műveletekhez nem szabad végrehajtani! A különböző képekből készített mozaikok fontos feltétele a két, egymás mellé illesztendő kép kontraszt-, szín- s ebből következően hisztogramjainak illesztése. A hisztogram-illesztéskor (kontraszt-illesztéskor) a módosítandó kép hisztogramját kell a célkép hisztogramjához illeszteni. A feladatot legegyszerűbben a LUT és a hisztogramtechnika kombinációjával kapjuk. Folyamatában a 80. ábra mutatja az eljárást.
80. ábra A hisztogram-illesztés alapösszefüggése Látható, hogy a kiegyenlítésbe bemenő és onnan kijövő képek hisztogramjait egy alkalmas LUT köti össze. A megoldás során ezt a LUT-függvényt kell meghatározni [Erdas Field Guide].
3
A baloldali másodlagos csúcsot figyelmen kívül hagytam.
84
a) a célkép és hisztogramja
b) a módosítandó kép és hisztogramja
c) az egyesített képek és a közös hisztogram
d) a kiegyenlített képek és a közös hisztogram 81. ábra A hisztogram-illesztés folyamata
85
A hisztogram-illesztést többsávos képek esetén sávonként hajtjuk végre. A hisztogram-illesztés nagy jelentőségű a mozaikokból összerakott digitális ortofotótérképek készítésében. A digitális úton feldolgozott űr- és légifelvételekből azonos minőségű és esztétikájú termék állítható elő. 3.5. Decimálás, replikálás és interpoláció
A decimálás a képek felbontásának csökkentésére, a generalizálásra irányuló művelet. A számítás logikai menetét a 82. ábrán keresztül könnyű megérteni. A kép meghatározott pixelcsoportjainak – például 2 × 2 pixel – intenzitására vonatkozó számtani közepet számítjuk ki, majd helyezzük el a kapott értéket a csökkentett geometriai felbontású képmátrixba. Lehetséges megoldás az is, hogy a pixelméret változatlan marad, ekkor a kép mérete fog csökkenni. 2 × 2-es pixelcsoportra végzett eljárással jó közelítéssel negyedére lehet a kép tárolókapacitás-igényét csökkenteni. A decimálást alkalmazzuk a képpiramis rétegeinek előállításában.
82. ábra A decimálás logikai lépései Éppen ellenkező művelet a replikálás, amelynek során a pixelek intenzitásértékeit megsokszorozzuk. A kimeneti kép meghatározott pixelcsoportjára a bemenő kép megfelelő elemének intenzitását másoljuk át. A 83. ábrán látható, hogy 2 × 2-es blokkméret esetén a négy összetartozó új intenzitásérték a kiindulási kép megfelelő intenzitását veszi fel.
83. ábra A replikálás A replikálás műveletével a különböző geometriai felbontású képeit hozzák azonos felbontásra, hogy a további feldolgozási lépésekben egyenrangú információhordozóként használhassuk azokat. Például a Landsat TM műhold 120 mes geometriai felbontású termális infravörös sávját replikálással alakíthatjuk a többi sáv 30 m-es geometriai felbontására. A replikálás az adatok és nem az információtartalom megsokszorozását jelenti! Az interpoláció szintén adatmennyiség növelő eljárás. Segítségével meghatározott helyhez tartozó ismeretlen intenzitásértékek állapíthatók meg (84. ábra). Egy kép geometriai felbontását a replikációval ellentétben úgy növeli meg, hogy közben a tónusértékek között átmenetet biztosít. A geometriai felbontás megváltoztatásakor,
86
újramintavételezéskor gyakran alkalmazott eljárás. Végrehajtása valamely matematikai interpolációs összefüggés, pl. lineáris interpoláció kiszámításával történik.
84. ábra Az interpoláció logikája A leggyakoribb interpolációs eljárások a lineáris, a másod- és harmadfokú interpoláló módszerek. Mivel sok képelem intenzitásértékének meghatározásakor van szükség interpolációra, ezért az egyszerűen és gyorsan számítható módszereket kell használni. A magasabbfokú összefüggések a lassú végrehajtáson túl más zavaró hatások (pl. erős simítás) miatt nem terjedtek el. Az újramintavételezés ismertetésekor a felhasznált összefüggéseket megadom. 3.6. Az újramintavételezés
A képfeldolgozásban gyakran fordul elő az az eset, hogy a digitális kép felbontását meg kell változtatni (85. ábra b része). A különböző alkalmazások nagyobb részében egy-egy pixel intenzitásértékét annak súlypontjában (középpontjában) reprezentáljuk. Szükség lehet azonban arra is, hogy más geometriai helyen szeretnénk ismerni az intenzitást. Ez az utóbbi igény főként a geometriai transzformációk kapcsán merül fel (85. ábra c része).
a) A pixel és szokásos reprezentációja annak középpontjával
b) Eredeti kép (folytonos vonal) és eltérő felbontású változata (szaggatott vonal)
c) Geometriai transzformáció – forgatás – hatására módosuló pixelközéppontok
85. ábra Eredeti és új pixelközéppontok Az eredeti és újonnan megállapított pixelközéppontokkal két kérdés is felmerül: 1. Mennyi az intenzitás értéke a kérdőjellel jelölt új pixelközéppontoknak? 2. Hogyan határozhatók meg azok a régi középpontok felhasználásával?
87
A két kérdés természetesen szorosan összefügg. A digitális kép létrehozásakor már ejtettem szót a mintavételezésről (2.2. fejezet). A korábban már elmondottak szerint a digitális képalkotás során meghatározott geometriai helyeken – a pixelközéppontokban – adott kiterjedésű helyre (pixelméret) határozzuk meg a beeső fény intenzitását. Abban az esetben, amikor már digitális képből indulunk ki, s megváltoztatjuk az eredeti középpontok helyét, számítással határozzuk meg az intenzitásértékeket, ismételt mintavételezésről vagy másszóval újramintavételezésről (resampling) beszélünk. Az új pixelközéppontok a felbontás megváltozása vagy a transzformáció során kerülnek kiszámolásra. Az intenzitásértékek meghatározására az interpolációt használják. A képfeldolgozásban az interpolációval szemben támasztott legfontosabb követelmények (gyorsaság, megfelelő pontosság) miatt az alábbi eljárások terjedtek el. A legközelebbi szomszéd módszert (nearest neighbourhood method) néha nulladfokú interpolációnak is hívják. Az … ábrán láthatóan A, B, C és D-vel jelölöm a P pontot környező régi pixelközéppontokat. Ezeken a helyeken az intenzitások értéke rendre IA, IB, IC, ID. A P jelű új középponthoz tartozó intenzitásérték (IP) a következő egyenlet teljesülésével választható ki: (1)
I P = I d min
ahol d a szomszédoktól mért távolságok, s ezek közül a legkisebb értékű a dmin.
d PA = d min IP = IA
86. ábra A legközelebbi szomszéd módszer lényege A legközelebbi szomszéd módszer használatához csupán az egyes szomszédos pixelközéppontoktól vett távolságokat kell kiszámítani, majd a minimális távolságra lévő intenzitásértékét átveszi az új középpont. A gyakorlatban a számítás gyorsítása érdekében egyszerű távolságnormákat célszerű választani. Emiatt az Euklideszi távolságtól eltérő távolságnormák is forgalomban vannak, pl. a Manhattan-távolság. Definíciószerűleg P (xP, yP) és Q (xQ, yQ) pontokra (2)
d M = ∆x + ∆y = xQ − x P + y Q − y P
Ennek végrehajtása eltér az Euklideszi távolság kiszámításától d E = ∆x 2 + ∆y 2 =
(x
− xP ) + (yQ − y P ) 2
Q
2
(3)
A módszer előnyének gyorsaságát és rugalmas felhasználását tartják. Az újramintavételezési eljárások közül csak ez a módszer alkalmas tematikus osztályozás végtermékének feldolgozására. 88
A tematikus osztályozásnál előre meghatározzák, hogy az egyes tematikákat milyen kódokkal jelöljék. Például lehetséges kódkiosztás a következő: Kód 1 2 3 4 5
Tematika tűlevelű erdő lombos erdő cserjés-bokros terület rét szántóföld stb.
Az eljárás, mivel valamely szomszéd intenzitásértékét fogja adni az új középpontnak, tematikahatáron például egymás mellett szereplő 3-as és 5-ös kódokból – bokros és szántóterületek határán – nem fog 4-es kódot, rétet „kitalálni” (ellentétben az összes többi újramintavételező eljárástól). A metódus hátrányának viszont tónusos képek alkalmazásakor durva, lépcsős viselkedését említik meg, ami például a kép egy részén ferdén húzódó vonalak, vonalas részletek torzításánál érhető tetten. A bilineáris interpolációval megvalósított újramintavételezés kiküszöböli a durva tónusátmeneteket, ugyanakkor még elfogadható sebességcsökkenést mutat. Számítási összefüggései a 87. ábra szerint érthetők meg.
a) alapösszefüggések
b) a bilinearitás jelentése
87. ábra A bilineáris interpoláció kiindulása és értelmezése Az elsőfokúnak is nevezett bilineáris interpoláció – a neve után is – lineáris interpolációk együttesét jelenti a két koordinátatengely mentén. A számítás egyszerűsítése érdekében a pixelméretet normálják vagyis ∆x = ∆y = 1
(4)
Ennek megfelelően a többi távolság értékére is igaz, hogy 0 ≤ dx, dy ≤ 1
(5)
vagyis a szomszédoktól számított távolság és a pixelméret arányát tartalmazzák a dx és dy értékek. Ekkor az interpoláció összefüggése viszonylag egyszerű: I P = I A + dx ⋅ ( I B − I A ) + dy ⋅ ( I C − I A ) + dx ⋅ dy ⋅ ( I A − I B − I C + I D )
89
(6)
Tovább finomítja az intenzitásértékek közötti átmenetet a másodfokú, ún. Lagrangepolinomos interpoláció. Előnyeként a még simább átmenet említhető, sebességigénynövekedése még nem számottevő. 4 × 4-es pixelszomszédság alapján végzi a számítást (… ábra). A gyakorlatban igen ritkán alkalmazzák. A gyakorlatban alkalmazott újramintavételezési eljárások legbonyolultabbika a harmadfokú polinomos (bikubikus) interpoláció4. Ennél az eljárásnál lényegesen bonyolultabb összefüggéseket kell kiértékelni, a számításigény erősen megnövekszik. A szükséges paraméterek meghatározásához megnövekedett pixelszomszédságot kell kezelni. Mivel több környező pixel intenzitásértéke vesz részt a számításban, így a globálisabb tendenciák jobban felerősödnek, homályosodik, kontrasztszegénnyé válik a kép. Egyetlen újonnan meghatározott intenzitásértékhez itt is 4 × 4 szomszédos pixelre van szükség (88. ábra).
88. ábra Pixel szomszédsága Lagrange- és harmadfokú interpolációnál A 16 pixel alapján az új érték kiszámítása a következő összefüggések szerint történik: IP =
[I 4
k =1
i −1, j + k − 2
⋅ f (d i −1, j + k − 2 + 1) +
+ I i , j + k − 2 ⋅ f (d i , j + k − 2 ) +
+ I i +1, j + k − 2 ⋅ f (d i +1, j + k − 2 − 1) +
(7)
+ I i + 2, j + k − 2 ⋅ f (d i + 2, j + k − 2 − 2 )
ahol i = int( x P ), j = int( y P ) d ij az (i,j) koordinátájú pixelközéppont és (xP, yP) pontok távolsága f segédfüggvény, melynek definíciója: (a + 2) x 3 − (a + 3) x 2 + 1 °° 3 2 f ( x ) = ® a x − 5a x + 8a x − 4 a ° 0 °¯
4
ha x < 1 ha 1 < x < 2 egyébként
A szakirodalomban nevezik harmadfokú konvolúciós eljárásnak is.
90
(8)
ahol a = −0.5 5. Végezetül hasonlítsuk össze a bemutatott módszereket! Az egyszerű eljárások durvább átmenetet biztosítanak, ugyanakkor végrehajtásuk rendkívül gyors. Ezzel szemben a finom intenzitás-átmenet igényeit – például űrfelvétel újramintavételezése légifénykép felbontására felbontás-egyesítés céljából – a magasabbfokú módszerek képesek kiszolgálni. A 89. ábrán a három legfontosabb típussal készült képrészlet összehasonlítása látható.
a) legközelebbi szomszédmódszer
b) bilineáris interpoláció
c) bikubikus interpoláció
89. ábra Néhány újramintavételezési eljárás összehasonlítása 3.7. Algebrai és logikai képműveletek
Az algebra szokásos alapműveletei közé az összeadást, kivonást, szorzást és osztást szokás sorolni. Ezeket a műveleteket értelmezni lehet a digitális képekre is. A felsorolt műveletek a kétoperanduszú függvények csoportjába tartoznak. A digitális képfeldolgozásban operanduszként a képek intenzitásértékeit kell tekinteni, csupán a megfelelő összetartozást kell biztosítani. Ez azt jelenti, hogy a műveletek végrehajtásához egyértelműen meg kell adni, hogy mely kép mely pixelje melyik másik kép vagy ugyanazon kép másik sávjának melyik pixeljével fog az algebrai műveletben részt venni. Erre az egyértelmű hozzárendelésre a pixelek koordinátáit használjuk. A koordináták alapvetően kétfélék lehetnek: 1. A megfelelő – összetartozó – pixelpár ugyanazon a sor- és oszloppozíciókkal megadható helyen találhatók. Ez a fajta koordinátaértelmezés feltételezi, hogy a két operanduszként szereplő kép vagy képsáv méretei megegyeznek, ellenkező esetben vagy nem hajtódik végre a művelet vagy hibaüzenetet kapunk. 2. Az összetartozó pixelpár helyzetét valamely vonatkozási rendszerben adjuk meg. A vonatkozási rendszer nem sor-oszlop, hanem x-y, esetleg φ-λ típusú koordinátamegadást használ. Ez utóbbi koordinátamegadás a digitális űrfelvételek valamint fotogrammetriai képek esetén jelentős: az egyes képek térbeli helyzetének pontos megadása után a képet alkotó pixelek térbeli pozíciója is kiszámítható. Az algebrai műveletek csak azokra a pixelekre 5
Néhány szerző a = −1 konstanssal adja meg az összefüggéseket.
91
futnak le, amelyek ilyen koordinátái megegyeznek. Ez esetben nem feltétlenül egyeznek meg a képek méretei. Láthatóan ez utóbbi megoldás megvalósítása kicsit bonyolultabb; ezt azonban rugalmassága ellensúlyozza. Az egyértelmű kapcsolat megadásával az összetartozó pixelek kiválaszthatók, azok intenzitásértékei már az algebrai műveletekkel feldolgozhatók: összeadásnál a tárolt intenzitások összegét, kivonásnál azok külöbségét stb. kell képezni. Mivel az algebrai műveletek értékkészlete „tágul” az eredeti kép értékkészletéhez képest, ezért gyakran a megjelenítés és további egyszerűbb tárolás valamint feldolgozás érdekében a kapott eredményképet a megkövetelt minimum és maximum érték közé szorítják be (átskálázzák az eredményképet). Ha például 128+242 algebrai műveletet elvégezzük, a 370-es érték meghaladja az eredeti 255-ös felső határt, tehát az átskálázás szükségszerű. Ha a teljes eredménykép maximuma 473-ra adódott, minimuma változatlanul nulla, az átskálázás a következők szerint néz ki: 255 255 I új = int ⋅ 370 = 199 ⋅ I régi = int I 473 régi max
(1)
Hasonlóan figyelembe kell venni az esetlegesen előforduló negatív alsó határt. A –37es minimum és a változatlan 255 maximum mellett egy kivonással kapott 14-es érték az átskálázás után 255 255 ⋅ (I régi + abs (I régi min )) = int I új = int ⋅ (14 + 37 ) = 45 255 + 37 255 + abs (I régi min )
(2)
értékű lesz. Az összeadás és kivonás kitűnő képáttűnési effektusa miatt kedvelt a fényképek digitális módosításában. Értelemszerűen kell eljárni a szorzás illetve osztás végrehajtásakor is. Az algebrai osztás művelete további gondokat okozhat. Az osztásnál hibát okozhat az az eset, amikor az osztó pixel intenzitásértéke zérus. Ennek kezelésére több mód kínálkozik: 1. Az osztás során az eredménykép ezen helyeire előre meghatározott számérték kerül. Leggyakrabban 0, 255 illetve a maximális lehetséges intenzitásértéket használják. 2. Speciális karakter kerül tárolásra. Ilyen különleges karakter például a NaN – Not a Number –, nem szám nevű azonosító. Előnye, hogy használatával megkülönböztetésre kerül a nem értelmezhető osztás, a program azonban hibajelzés nélkül fut le. 3. Az osztó értékéhez elemien kicsiny számot hozzáadunk, majd így a számítógép végrehajtja az osztást. Ez a megoldás a nagyon kicsi osztó használatával gyakorlatilag e helyekre a maximális lehetséges (pl. 255) intenzitásértéket teszi. 4. Az eredetileg 0 és 255 közé eső intenzitásintervallumot 1 és 256 közé tolják el, így a nullával osztás elő sem fordulhat.
92
Az algebrai osztás a digitális űrfelvételek feldolgozásában kiemelt jelentőségű. Az ún. hányados- és indexképek készítése matematikailag legtöbbször az osztásra illetve az algebrai műveletekre vezethetők vissza. A 90. ábra a és b részén ábrázolt bemenő képekre végrehajtott négy alapművelet eredményét a c, d, e, f részeken lehet látni.
a) első bemenő kép
b) második bemenő kép
c) algebrai összeadás eredménye
d) algebrai kivonás eredménye
e) a szorzás eredménye f) az osztás eredménye 90. ábra A négy alapművelet értelmezése 93
Gyakori igény, hogy a négy alapműveleten túl további függvények is használhatók legyenek. Ezek a minimum-, maximum-, átlag- és különbség-operátorok, melyek értelemszerűen a bemenetek minimumát, maximumát, számtani középértékét és különbségét (differenciáját) számítják pixelenként. A 90. ábra folytatásaként hatásuk a 91. ábrán látható.
a) a minimum-operátor hatása
b) a maximum-operátor hatása
c) az átlag-operátor hatása
d) a különbség- (differencia)-operátor hatása
91. ábra További fontos operátorok hatása Az algebrai műveletek kiterjesztése a komplex aritmetika, amikor gyakorlatilag tetszőleges matematikai műveletekből (logaritmus, exponenciális, trigonometriai, hatvány, gyök stb. függvényekből) álló függvénysort alkalmazunk a bemenetet jelentő kép vagy képek intenzitásértékeire. Néhány képkorrekciós megoldás használ ilyen eszközöket. Külön említést érdemelnek a logikai képműveletek. Ezek a műveletek a bináris képek feldolgozásának fontos eszközei. Az ÉS (AND), VAGY (OR), NEM (NOT) műveleteken kívül a kizáró vagy (XOR), illetve ezek kombinációinak megvalósításával találkozhatunk. Működésüket a 92. ábrán szemléltetem.
94
a) első bináris kép
a) második bináris kép
b) AND-művelet hatása
c) OR-művelet hatása
d) XOR-művelet hatása
e) NOT hatása
92. ábra Logikai képműveletek A logikai képműveleteket a számítógépes grafikában szívesen használják. 95
3.8. Színmodellek
Az egyes színeket alapvetően kétféle keverési módszerrel lehet előállítani. Ezek: •8 additív (összeadó) színkeverés, mely szerint az egyes komponensek spektrumgörbéi összeadódnak. Ennek a keverési módszernek felel meg az, ha különböző színű fényforrások fényét egymásra vetítjük. A három alapszínre, másnéven elsődleges színre – a vörösre (angolul Red), zöldre (Green) és kékre (Blue) – alkalmazott additív színkeverés eredménye a fehér. •8 szubsztraktív (kivonó) színkeverés, amely a spektrumgörbék kivonását jelenti. A spektrumgörbék kivonódásával ekvivalens az elnyelések (abszorbciók) összeadása. Ennek a módszernek a festékek keverése felel meg; a három alapszín kivonó keverésével a fekete színt kapjuk meg. A számítástechnikában az alapszínekre épülő additív színkeverési módszerek közül a színek angol rövidítései után elnevezett RGB-színmodell terjedt el. Igen gyakran a használható színeket a három alapszínnek megfelelően háromdimenziós színtér pontjainak tekintik. E színtér koordináta-tengelyei az alapszínek. Mivel minden alapszín véges és azonos számú árnyalatot vesz fel, ezért az összes színt tartalmazó alakzat kocka, az ún. RGB-kocka (93. ábra).
b) a kocka definíciója
a) színek a kockában
93. ábra Az RGB-kocka Általában az egyes alapszínek kódolásához egy bájtot használnak, ezért az alapszínek árnyalatainak száma 256. A jelölés szerint tehát a kocka oldalhosszúsága 256 egység. A kockán belül bármely egész koordinátájú pont egy konkrét színt azonosít. Az összes kifejezhető színárnyalat 2563, azaz közel 16.8 millió. Néha a színteret normálják, ekkor az RGB-kocka egységkocka lesz, vagyis az alapszínek 0 és 1 közötti értéket vehetnek fel. A három alapszín szerint a kocka sarkainak konkrét színei a következők:
96
Szín
R 255 0 0 0 255 0 255 255
G 0 255 0 0 255 255 0 255
B 0 0 255 0 255 255 255 0
A szín neve vörös zöld kék fekete fehér cián magenta sárga
14. táblázat Az RGB-kocka sarkain található színek Az iménti felsorolásban az elsődleges színek mellett a másodlagos színek is megjelennek. Ezek a cián (C), a magenta (M) és a sárga (Y). A kocka origójában található a fekete (K), a testátló másik végpontjában a fehér (W). Ez utóbbi két csúcsot jellegzetes vonal, a szürkevonal köti össze (KW), amely mentén a három alapszínösszetevő értéke megegyezik, vagyis a szürke szín árnyalatait jelentik. A 94. ábrán egy színes kép és annak három, RGB-komponense látható.
a) eredeti színes kép
b) vörös komponens
c) zöld komponens
d) kék komponens
94. ábra RGB-képkomponensek Az RGB-kockához hasonlóan ábrázolják a szubsztraktív színkeverésnek megfelelően a színeket a CMY-színmodellben. Ekkor a ciánt, a magentát és a sárgát tekintik alapszíneknek, s segítségükkel adják meg az összes többi színt. Ábrázolása a 95. ábrán látható. A CMY-színmodellben a kocka sarkaiban ugyanazok a színek
97
találhatók, mint az RGB-modellben, s hasonló módon megtalálható a szürkevonal is. A CMY-kocka origójában a fehér található.
95. ábra A CMY-színmodell A CMY-modell például a nyomdászatban, textilfestékek színének megadásakor használatos. A szép, telt fekete szín megjelenítése érdekében módosították a modellt és újabb komponensként a feketét is bevonták. Így keletkezett a CMYK-színmodell, ahol az utolsó betű a fekete szín angol nevének utolsó betűje. Ezt a színmegadási módot a nyomdászat négyszínnyomás néven ismeri. A 96. ábrán nyomdai sokszorosításhoz készült CMYK képösszetevők láthatók.
a) cián-komponens
b) magenta-komponens
c) sárga-komponens
d) fekete-komponens
96. ábra CMYK-képkomponensek Sokszor nagyon nehéz adott konkrét szín árnyalatait megadni az eddig bemutatott színrendszerek segítségével. Eleinte a színek kategorizálásánál nem is ismerték az alapszíneket, viszont észrevették a színek közötti ciklikusságot. Ezt a szabályosságot kihasználva készültek az Ostwald-féle, majd később a Munsell-féle színkörök, illetve egy újabb színmodell (97. ábra). 98
97. ábra Színkúpok (HLS-színmodell) Az ábrán a kúp magasságai mentén a színek fényességét (brightness), a sugár mentén a színességet (colourfulness), a kör mentén pedig a színárnyalatot (hue) adjuk meg. A színrendszer másik elnevezése HLS-színmodell, ahol a H a színárnyalatra (hue), L a fényességre (lightness), S pedig a telítettségre (saturation) utal. Ez utóbbi modellhez nagyon hasonló az igen gyakran használt HSV színmegadási rendszer (98. ábra).
98. ábra A HSV-színmodell A modell szerint a színeket árnyalatukkal (Hue), telítettségükkel (Saturation) és fényességi értékükkel (Value) adjuk meg. Az első adat 0º és 360º, az utóbbi kettő 0 és 100 % közé eshet. Szokásos továbbá a fényességet luma, a telítettséget chroma komponensnek tekinteni. Gyakori, hogy a fényességet nevezik angolul brightness-nek (B) és intensity-nek (I) is. Emiatt a HSV-modell szinonimái a HSB, a HSI és az IHS elnevezések. IHS-modell néven fontos e színrendszer a távérzékelt felvételek feldolgozásában.
99
a) árnyalat (H) komponens
b) telítettség (S) komponens
c) fényesség (V) komponens
99. ábra Színes kép HSV-komponensei A HSV-modell az egy konkrét szín (pl. barna) sötétebb-világosabb árnyalatainak kikeverését teszi lehetővé, ez az esztétikus térképkészítésben kiválóan hasznosítható. A színmodellek közötti átszámítás révén (3.9. fejezet) az így megállapított összetevők RGB-komponensekre számíthatók át, s válnak íly módon hordozhatóvá. A színek megadására alkalmaznak színelnevezési rendszereket is. Ezek között a legfontosabb az 5 × 16 × 5, azaz 400 színt tartalmazó Natural Colour System (NCS). További ugyancsak szabványos modellek csak felsorolásszerűen: Pantone Matching System Trumatch Swatching System Focoltone Colour System Toyo Color Finding System.
Ezeken kívül még továbbiak is ismertek és megnevezhetők. A színek megadására és a színmodellek, valamint a köztük használt átszámítások szabványosítására hozták létre a Commission Internationale d’Éclairage (CIE) nevű nemzetközi szervezetet. Kidolgoztak újabb színmodellt (CIE Lab, más jelöléssel CIE L*a*b), valamint a színmérés módszereit szabványosítják. A látható fény két szabványos diagrammja a 100. ábrán látható (kromaticitási diagram).
100
a) 1931-es szabvány szerinti diagram
b) 1976-os szabvány szerinti diagram
100. ábra A látható spektrum színei hullámhosszaikkal – kromaticitási diagramon Érdekes, hogy az emberi színlátás a kísérletek szerint RGB-típusú. Szemünk retinájában található közel 100-120 millió pálcika6 a fény sűrűségét érzékeli; gyakorlatilag a fekete-fehér látást biztosítják. A három alapszínre háromféle csap7 alakult ki. Ezek a vörösessárga-vörös színre érzékeny protonopen (P), a zöldre érzékeny deuteronopen (D) és a kékre érzékeny tritonopen (T) csapok. A csapok száma megközelítőleg 6-6.5 millió. A háromféle csaptípus érzékenysége 445, 535 és 570 nm-nél maximális. A legújabb kutatások szerint a színtévesztés bizonyos esetekben az érzékenységi görbék speciális szemüveggel történő eltolásával kezelhető. 3.9. Színtranszformációk
Az egyes színmodellek között szükség van átszámításra. Ha például egy képfeldolgozási műveletsor eredményét papíron is meg akarjuk jeleníteni és nyomdai megoldást választunk, az esetek többségében használt RGB-színmodellről át kell térnünk a CMYK-modellre. Persze ehhez hasonló műveletekre munka közben is kerülhet sor. Nézzük meg, hogy matematikailag milyen megoldásokat dolgoztak a különböző modellek közötti áttérések, a színtranszformációk megvalósítására. Hangsúlyozni kell, hogy a modellek elnevezéséhez hasonlóan itt is többféle megoldás létezik. Ez indokolja azt, hogy a különböző szoftverek által használt színmodellek összehasonlításával nem ugyanazokat az értékeket fogjuk kapni. Elsőként ha az RGB-modellről a CMY-modellre akarunk transzformálni, a következő összefüggéseket kell alkalmazni. Elsőként az RGB-értékeket normálni kell, vagyis át kell számítani 0 és 1 intervallumra: R ′, G ′, B ′ =
6 7
(1)
R, G , B 255
ang. rod ang. cone
101
majd ezt követően a számítás igen egyszerű: C ′ = 1 − R′ M ′ = 1 − G′
(2)
Y ′ = 1 − B′
A nem normált CMY komponensek használatához továbbá szükséges a 0 és 255-ös tartományra széthúzás: C = 255 ⋅ C ′ M = 255 ⋅ M ′ Y = 255 ⋅ Y ′
(3)
Abban az esetben, ha normált színmodellt használunk, értelemszerűen az (1) és (3) lépések kimaradnak. Az ellentétes értelmű transzformáció ebből következően szintén egyszerű (a normálási lépés nélkül): R′ = 1 − C ′ G′ = 1 − M ′
(4)
B′ = 1 − Y ′
Az igen egyszerű megoldás magyarázata az, hogy a két színmodell egymásnak komplemense, tehát a benne szereplő alapszínek egymás kiegészítői. A nyomdai gyakorlatban a CMY-színmodell módosított változatát, a CMYK-modellt használják. Ekkor a normált RGB-összetevőkre a (2) kifejezés szerint előzetes CMYértéket számolunk, majd a következő összefüggések szerint kapjuk a végleges komponenseket: K = min(C ′, M ′, Y ′) C ′′ = C ′ − K
(5)
M ′′ = M ′ − K Y ′′ = Y ′ − K
vagyis K, a fekete komponens a három előzetes érték minimuma, s ezt az értéket az előzetes számokból ki kell vonni. A számítás befejezéseként a normálás feloldása következik, a (3)-as lépés. A CMYK-ból RGB-be alakítás tehát a fekete-érték hozzáadásával kezdődik, majd innentől kezdve megegyezik a CMY-RGB átalakítással.
102
Az RGB színmodellről a HLS színmodellre történő transzformáció egyenletei egy kicsit bonyolultabbak. A következő összefüggés szerint végezhetjük a számítást: 1 ⋅ (R ′ + G ′ + B ′ ) 3 3 ⋅ min (R ′, G ′, B ′) S = 1− (R ′ + G ′ + B ′ ) L=
ª « −1 H = cos « « «¬
1 º ⋅ [(R ′ − G ′) + (R ′ − B ′)] » 2 » (R′ − G ′)2 + (R′ − B′) ⋅ (G ′ − B ′) » »¼
(6)
A H-komponens számításánál ügyelni kell arra, hogy az arccos-függvény a legtöbb számítógépes rendszerben radiánban ad eredményt, amit tizedfokra kell alakítani. A H-kifejezésben szereplő algebrai műveletek elvégezhetők, ami esetleg gyorsabb számítást jelent. Abban az esetben, ha B ′ > G ′ , a tizedfokra átszámított H-érték a következők szerint módosul: H = 360° − H
(7)
Néhány rendszerben az L és S komponenseket százalékosan adják meg, ezért azok kapott értékét még meg kell szorozni százzal. A HLS-ből RGB-be történő átalakítás H-értékének függvényében háromféle módon valósul meg. Ha 0° < H < 120° , akkor 1 ⋅ (1 − S ) 3 S ⋅ cos( H ) 1 R ′ = ⋅ 1 + 3 cos(60° − H ) B′ =
(8)
G ′ = 1 − (R ′ + B ′)
ha 120° < H < 240° , akkor H = H − 120° G′ =
1 S ⋅ cos( H ) ⋅ 1 + 3 cos(60° − H )
(9)
1 ⋅ (1 − S ) 3 B ′ = 1 − (R ′ + G ′) R′ =
103
ha pedig 240° < H < 360° , akkor H = H − 240° B′ =
1 S ⋅ cos( H ) ⋅ 1 + 3 cos(60° − H )
(10)
1 ⋅ (1 − S ) 3 R ′ = 1 − (G ′ + B ′)
G′ =
A HLS-RGB transzformáció során alkalmazott trigonometriai függvényeknél ügyelni kell a tizedfok-radián átváltásra! A számítás a normálás inverzének kiszámításával fejeződik be. Végül igen gyakran alkalmazott színtranszformáció a színes RGB-képből fekete-fehér kép előállítása. A gyakorlatban kétféleképp valósítják meg. A gyakoribb megvalósítás a (11)-es formulát követi: I ′ = 0.333 ⋅ R ′ + 0.333 ⋅ G ′ + 0.333 ⋅ B ′
(11)
ami nem más, mint a három RGB csatorna intenzitásértékének számtani közepe. Az NTSC szabvány szerinti átalakítási egyenlet szerint pedig I ′ = 0.299 ⋅ R ′ + 0.587 ⋅ G ′ + 0.114 ⋅ B ′
(12)
alakú a képlet. 3.10. Elemi geometriai transzformációk
A digitális képek felhasználásakor gyakran van szükség arra, hogy elemi geometriai módosítást hajtsunk végre a képen. Ezek az elemi módosítások egyszerű algoritmusokon alapulnak, ezért gyorsan végrehajthatók. A digitális fotogrammetriában és a digitális úton nyert űrfelvételek feldolgozásakor a geometriai transzformációk kiemelt jelentőségűek. A következőkben tekintsük át az elemi geometriai képtranszformációkat! Fontos szem előtt tartani azt, hogy a digitális képet mátrixként reprezentáljuk. Az elemi geometriai műveletek általában az alapvető mátrixműveleteket jelentik, míg a következő fejezetben tárgyalt transzformációs eljárások már kicsivel összetettebbek. Az angol nyelvű szakirodalomban megtalálható a geometriai transzformációra a warp elnevezés, bár némely szerző csak vagy az elemi vagy az általános megoldásra értelmezi! A legegyszerűbb eljárás a kép eltolása8. A megvalósításban kétféle utat követhetünk. Az egyik lehetőség – ez a grafikai felhasználásban gyakran alkalmazott eljárás –, hogy a képmátrixot egy hipermátrix részletének tekintik, amely hipermátrix további almátrixai a beszúrt sorokból és oszlopokból állnak. Ezek az almátrixok fejezik ki a megadott sorszámmal illetve oszlopszámmal történő eltolást. Az eltolásban szereplő almátrixok a háttér színét tartalmazzák (101. ábra). 8
ang. moving vagy translation
104
a) eredeti helyzetű kép
b) eltolt kép
101. ábra A képeltolás egyik lehetséges megvalósítása A másik megoldási lehetőségre a speciális tárolási formátumok szolgálnak. A digitális űrfelvételek felhasználásakor többnyire szükség van a képet alkotó pixelek térbeli helyzetére. Tetszőleges helyen lévő pixel geometriai helyzetét a következő összefüggés írja le: X = X 0 + m ⋅ ∆x
(1)
Y = Y0 − n ⋅ ∆y
ahol X 0 , Y0 a kezdő pixel pozícióját, n, m az adott pixel sor-, illetve oszlopszámát, ∆x, ∆y pedig az x-, illetve y-irányú pixelméretet jelenti. A kép eltolása ebben az esetben igen könnyen megvalósítható: csupán a kezdőpontban tárolt X 0 , Y0 értékeket kell megváltoztatni, s amikor szükség van bármely képpont helyzetének megadására, a módosított tartalmú összefüggés alapján ez végrehajtható. Képlettel kifejezve tehát az eltolás a következők szerint valósul meg: X ′ = X + ∆X Y ′ = Y + ∆Y
(2)
vagy mátrixosan ª X ′º ª X º ª∆X º « Y ′ » = « Y » + « ∆Y » ¬ ¼ ¬ ¼ ¬ ¼
(3)
A következő szintén elemi transzformáció a méretarány megváltoztatása9, más szóval a kép skálázása. Matematikailag ez a következőt jelenti mátrixos jelöléssel:
9
ang. scaling
105
ª X ′º ª a 0 º ª X º « Y ′ » = «0 b » ⋅ « Y » ¬ ¼ ¬ ¼ ¬ ¼
(4)
A későbbiekben kényelmesen használható formulák érdekében maradjunk a mátrixos jelölési mód mellett! Abban az esetben, ha a = b és a > 1 , nagyításról, ha 1 > a > 0 , kicsinyítésről beszélünk (102. ábra b és c rész). Ha a ≠ b , akkor a kép affin torzítású (102. ábra d rész).
a) eredeti kép
b) kicsinyítés
c) nagyítás
d) affin torzítás
102. ábra Kép méretarányának megváltoztatása A negatív együtthatók geometriai jelentése a tükrözés10 méretarányváltással; ha a < 0 , akkor függőleges tükrözésről (a vízszintes tengelyre vett tükrözésről), ha b < 0 , akkor vízszintes tükrözésről (a függőleges tengelyre vett tükrözésről) van szó (103. ábra). Ha a = −1 , illetve b = −1 , a tükrözéssel a kép mérete nem változik (megtartó transzformáció).
10
ang. mirror vagy flip
106
a) vízszintes tükrözés
b) függőleges tükrözés
103. ábra Kép tükrözése (az eredeti kép a 102. ábrán látható) Abban az esetben, amikor a transzformáció a következők szerint néz ki: ª X ′ º ª1 a º ª X º « Y ′ » = «b 1 » ⋅ « Y » ¬ ¼ ¬ ¼ ¬ ¼
(5)
nyírásról beszélünk. a értéke a függőleges, b értéke pedig a vízszintes nyírás mértékét határozza meg (104. ábra).
b) függőleges nyírás
a) vízszintes nyírás 104. ábra Kép nyírása
Az elemi transzformációk közé tartozik a kép 90˚ egész számú többszörösei szerinti forgatás11. A forgatás geometriailag a következőt jelenti: ª X ′º ª cos(α ) sin(α ) º ª X º « Y ′ » = «− sin(α ) cos(α )» ⋅ « Y » ¬ ¼ ¬ ¼ ¬ ¼ 11
(6)
ang. rotation
107
A forgatás középpontja lehet a kép középpontja vagy ami ennél gyakoribb, a kép bal felső sarokpontja. A 105. ábrán látható egy kép kicsiny szögértékkel történő forgatása. A forgatás a bal felső sarok körül történt. A geometriai transzformációknak irányuk szerint alapvetően két esete van. 1. Direkt transzformáció: Az adott kép minden egyes képpontjára kiszámítjuk az új képen megtalálható helyüket. Ebben az esetben előre-transzformációt12 hajtunk végre. A számításkor a régi pixelpozíciókban található intenzitásértékeket átmásoljuk az új, egészre kerekített pixelpozícióba. A kerekítés elkerülhetetlenül hibát visz az eredménybe (lásd forgatás). 2. Indirekt transzformáció: A transzformálandó kép mellett definiáljuk az új képet. A számítás során az új kép pontjain megyünk végig, s határozzuk meg azok intenzitásértékét a régi kép intenzitásértékeiből. Ebben az utóbbi esetben szükség van valamely újramintavételezési módra (részletesebben lásd 3.6. fejezet). Ezt a számítást hátra-transzformációnak13 nevezzük. Az újramintavételezés folytonos eredményképet eredményez. A gyakorlatban mindkét transzformációs típusra szükség van; a feladat jellege dönti el, hogy éppen melyiket célszerű választani.
a) forgatás direkt transzformációval
b) forgatás indirekt transzformációval
105. ábra Kép elforgatása direkt és indirekt transtformációval A kifejezésben szereplő együttható-mátrix (más néven forgatási mátrix) sajátos szerkezetű is lehet. 0˚, +90˚ és -90˚ esetén a következő alakúak: ª1 0º ª 0 1º ª0 − 1º «0 1», «− 1 0», «1 0 » ¬ ¼ ¬ ¼ ¬ ¼
(7)
Látható, hogy a 0˚-os forgatás egységmátrixot ad, míg a másik két érték is jellegzetes együtthatókat produkál. A szoftverekben azonban nem ezeket a forgatási mátrixokat használják ezekre a különleges forgatásokra, hanem ehelyett a sorok és oszlopok átrendezésével oldják meg a feladatot. Ez a futás során egy csomó számítást megtakarít, ezért sokkal gyorsabbá válik a program. A kerek, 90˚ többszörösével 12 13
ang. forward-transformation ang. backward-transformation
108
végzett forgatásoknál ezt a programok is igazolják. Általában megkülönböztetik a menükben is ezeket a forgatásokat. A forgatások eredménye a 106. ábrán látható. Az elemi képtranszformáció kategória utoljára bemutatandó művelete a kép transzponálása14. Mivel a digitális kép mátrixnak fogható fel, így a transzponált is értelmezhető. Az más kérdés, hogy a gyakorlatban ritkán alkalmazott transzformációról van szó.
a) +90˚-kal történő forgatás
b) ±180˚-kal történő forgatás
c) +270˚ (-90˚) szerinti forgatás
d) kép transzponálása
106. ábra Kép forgatása 90˚ többszöröse szerint és a transzponált jelentése
14
ang. transpose
109
3.11. Általános geometriai transzformációk
Az elemi geometriai transzformációk nem képesek egy képet tetszőleges koordinátarendszerhez hozzárendelni vagy e hozzárendelést később módosítani. Ezért az elemi transzformációkat általánosítani kell. A legtöbb felvételtípus feldolgozása során síkbeli transzformációt használunk; kivételes esetben térbeli összefüggést kell alkalmazni. A továbbiakban a síkbeli összefüggésekre koncentrálok. Az általános transzformációk során a képpontok helyzetének megadására és annak megváltoztatására szolgáló transzformációt a szakirodalomban regisztrációnak is nevezik. A regisztráció megvalósítása során kétféleképp is eljárhatunk: • a transzformáció paraméterei ismertek, s azok felhasználásával elvégezzük a kép átalakítását minden egyes képpontra • a transzformáció paramétereit közvetlenül nem ismerjük, azokat közös pontok – az ún. illesztőpontok – segítségével tudjuk kiszámolni, majd a transzformációt minden pixelre végrehajtjuk. Abban az esetben, ha ismerjük a transzformáció paramétereit, előzetes számításra nincs szükség. Az ismert értékeket be kell helyettesíteni a transzformációs kifejezésbe s végre kell azt hajtani minden képpontra. Abban az esetben viszont, ha a paramétereket illesztőpontok segítségével határozzuk meg, elvileg két lehetőség kínálkozik a paraméterek meghatározására. A két elvi lehetőség, hogy 1. pontosan annyi ismeretlent tartalmaz a transzformációs összefüggés, mint ahány egyenletet fel tudunk írni az illesztőpontok révén – a feladat határozott 2. a több illesztőpont következtében több egyenlet írható fel, mint ahány ismeretlen értékét kell meghatározni – a feladat túlhatározott. Ez utóbbi esetet a gyakorlatban szívesebben választják, mert így az illesztőpontok mérésekor ellenőrzésre nyílik lehetőség, s számítás során elérhető pontosság is nagyobb. A feladat túlhatározott jellegét vagyis az ellentmondásokat kiegyenlítéssel oldhatjuk fel. A kiegyenlítés fontosabb lépései a következők: 1. A transzformációs egyenletek felírása az illesztőpontokra 2. A kapott nemlineáris egyenletek sorbafejtése az elsőfokú tagokig az egyes ismeretlenek szerint 3. A normálegyenlet-rendszer együtthatómátrixának és tisztatagvektorának feltöltése 4. A normálegyenlet-rendszer megoldása a legkisebb négyzetek módszerével. A kiegyenlítés imént bemutatott lépései a szakirodalomban részletesebben is megtalálhatók. Megjegyzem, hogy az ellentmondások feloldására nem csupán a legkisebb négyzetek módszere, hanem más, például robusztus kiegyenlítési módok is alkalmasak. A számítás során az is bevett gyakorlat, hogy elegendő illesztőpont megléte esetén eleinte alacsonyabb szabadságfokú transzformációs modellt számítanak ki, majd a durva hibák ellenőrzését követően növelik a szabadságfokok számát. A számítási modellek (transzformációs modellek) legegyszerűbbike az egybevágósági transzformáció15. A transzformáció közvetítőegyenletei mátrixos formában a következők: 15
ang. rigid body transformation
110
X ′ = X ⋅ cos(α ) + Y ⋅ sin(α ) + ∆X Y ′ = − X ⋅ sin(α ) + Y ⋅ cos(α ) + ∆Y
(1)
A modell ismeretlen paraméterei a két eltolás-érték ( ∆X , ∆Y ), valamint α forgatási szög. A három paraméter meghatározásához tehát legalább három egyenletet kell tudni felírni, ehhez pedig két illesztőpontra van szükség. Mindkét koordináta-adat felhasználásával a két illesztőpontra már négy egyenletünk van, ez egy fölös mérést jelent. Segítségével tudjuk a transzformációt ellenőrizni. A megoldáshoz a kiegyenlítés módszerét használjuk. Az (1)-es kifejezés mátrixos jelölési móddal a következők szerint néz ki: ª X ′º ª cos(α ) sin(α ) º ª X º ª∆X º « Y ′ » = «− sin(α ) cos(α )» ⋅ « Y » + « ∆Y » ¬ ¼ ¬ ¼ ¬ ¼ ¬ ¼
(2)
Az egybevágósági transzformációnál eggyel nagyobb szabadságfokkal rendelkezik a Helmert-féle hasonlósági transzformáció. Ebben az esetben a modell összefüggései a következők: ª X ′º ª cos(α ) sin(α ) º ª X º ª∆X º « Y ′ » = m ⋅ «− sin(α ) cos(α )» ⋅ « Y » + « ∆Y » ¬ ¼ ¬ ¼ ¬ ¼ ¬ ¼
(3)
A modellben az (1) összefüggésben szereplő változókon kívül ismeretlen még m méretarány-tényező is. A megoldáshoz elegendő két illesztőpont. További finomítás érhető el az affin transzformáció felhasználásával. A közvetítőegyenlet az alábbi: ª X ′º ª m x º ª cos(α ) sin(α ) º ª X º ª ∆X º « Y ′ » = «m » ⋅ « − sin(α ) cos(α )» ⋅ « Y » + « ∆Y » ¬ ¼ ¬ y¼ ¬ ¼ ¬ ¼ ¬ ¼
(4)
A képletből látható, hogy a két koordináta-tengely irányában eltérő lehet a méretarány-tényező. Összesen a kifejezésben szereplő ismeretlenek száma 5, melyhez már legalább három illesztőpont szükséges. Az egyszerűbb számítás érdekében az iménti egyenleteket szokás lineáris formában is felírni. ª X ′º ª a11 « Y ′ » = «a ¬ ¼ ¬ 21
a12 º ª X º ª∆X º ⋅ + a 22 »¼ «¬ Y »¼ «¬ ∆Y »¼
(5)
Az újonnan bevezetett a ij paraméterekkel együtt az ismeretlenek száma hat, bár ezek nem teljesen független mennyiségek. A linearitás miatt azonban a sorbafejtés és a kiegyenlítés végrehajtása lényegesen egyszerűbb. Szintén három illesztőpont elegendő. Természetesen fölös méréssel megbízhatóbb és pontosabb transzformációs összefüggéshez jutunk. A gyakorlatban ritkán használnak az affin transzformációnál magasabbfokú eljárást. Magasabb fokszámú összefüggések a polinomos transzformációs modellek:
111
X ′ = a1 ⋅ X + a 2 ⋅ Y + a3 ⋅ X ⋅ Y + a 4 ⋅ X 2 + a5 ⋅ Y 2 + … + ∆X Y ′ = b1 ⋅ X + b2 ⋅ Y + b3 ⋅ X ⋅ Y + b4 ⋅ X 2 + b5 ⋅ Y 2 + … + ∆Y
(6)
A transzformációs modellben szereplő ismeretlenek száma gyorsan növekszik, s mivel az egyre bonyolultabbá váló kifejezések kiszámítása egyre több időt vesz igénybe, így a kép transzformálása egyre lassabb lesz. További lehetőségként még a projektív transzformációt említem meg. Egyenletei a következők: X′=
a11 X + a12Y + ∆X a31 X + a 32Y
Y′ =
a 21 X + a 22 + ∆Y a 31 X + a 32Y
(7)
A transzformációban szereplő ismeretlenek száma (nyolc) éppen megegyezik négy illesztőpontra felírható egyenletek számával. A digitális fotogrammetriában szívesen alkalmazzák ez utóbbi eljárást, mert ez a fotogrammetria alapegyenletének kétdimenziós változata, s képtranszformációk számításánál igen jó eszköz. 3.12. Haar- és Hadamard-transzformáció
A képfeldolgozásban igen gyakran alkalmaznak transzformációkat, melyek a képek radiometriai tartalmára gyakorolnak hatást. Ezeknek a transzformációknak jó része a matematikában az általános integráltranszformáció elnevezést viseli. Az integráltranszformáció összefüggése a következő: F (u , v ) =
+∞ +∞
³ ³ f (x, y ) ⋅ K (x, y, u, v ) du dv
(1)
− ∞− ∞
Az integráltranszformáció diszkrét esetben a következő formula szerint írható le:
F (u, v ) =
+∞
+∞
f ( x, y ) ⋅ K ( x , y , u , v )
(2)
x = −∞ y = −∞
ahol a képletben szereplő f ( x, y ) a bemenő kép, F (u, v ) az eredménykép és K függvény elnevezése kernel vagy bázisfüggvény. A gyakorlati felhasználás során M × N diszkrét pontra (jelen esetben képpontra) vonatkozó képlet:
F (u, v ) =
M −1 N −1
∑∑ f (x, y ) ⋅ K (x, y, u, v )
(3)
x = 0 y =0
A következőkben bemutatott transzformációk nagy része szintén integráltranszformáció. Az első integráltranszformáció a Haar-transzformáció. Általánosítását, az ún. H-transzformációt például csillagászati képek tömörítésében használják. 2 N × 112
2 N pixelből álló kép esetén 2 × 2-es blokkokra kell a képet darabolni. A blokkokban szereplő pixeleket a11 , a10 , a 01 és a 00 névvel azonosíthatjuk. Ekkor kiszámíthatók az alábbi mennyiségek minden blokkra: 1 (a11 + a10 + a01 + a00 ) 2 1 hx = (a11 + a10 − a01 − a 00 ) 2 1 h y = (a11 − a10 + a01 − a00 ) 2 1 hc = (a11 − a10 − a01 + a00 ) 2 h0 =
(4)
Az együtthatók meghatározását követően h0 értékeket 2 N −1 × 2 N −1 nagyságú mátrixba foglaljuk, s a számítást rekurzívan addig ismételjük, amíg csak egyetlen h0 nem marad. Az együtthatókat ezután redundanciamentesen kell tárolni. További alkalmazási lehetőség a wavelet-transzformációban kínálkozik (2.14. fejezet). A Hadamard-transzformációban szereplő kernelfüggvényeket (bázisfüggvényeket) a 107. ábra mutatja. A Hadamard-transzformációban szereplő kernelfüggvényeket szokás Walsh-függvényeknek is nevezni, néhány szerző ezért Walshtranszformációnak nevezi a műveletet. Érdemes összehasonlítani a 2.12. fejezetben szereplő DCT-bázisfüggvényekkel (35. ábra).
107. ábra A Hadamard-transzformáció bázisfüggvényei
113
A Hadamard-transzformációt bináris képek tömörítésében lehet használni. 3.13. Szinusz- és koszinusz-transzformáció
A szinusz- és koszinusz-transzformáció szintén integráltranszformáció. E két transzformáció nagyon szoros kapcsolatban áll egymással. Az egyértelműség növelése érdekében – azt kihangsúlyozva, hogy diszkrét megvalósításról van szó – diszkrét szinusz- illetve diszkrét koszinusztranszformációnak nevezik őket. A szinusz-transzformáció kernelje a következők szerint néz ki: K ( x, y, u , v ) = sin
π (2 x + 1)u π (2 y + 1)v ⋅ sin 2M 2N
(1)
A szinusz függvény a koszinusz függvénytől lényegében csupán fázisban különbözik. A gyakorlatban a JPEG tömörítési módnak köszönhetően a koszinusz-transzformáció terjedt el, s a lehetséges szinusz-transzformáció háttérbe szorult. A diszkrét koszinusz-transzformáció kerneljét, sőt teljes kiszámítási összefüggéseit a JPEG-formátum ismertetése kapcsán a 2.12. fejezetben adom meg. A diszkrét szinusz- illetve koszinusz-transzformációkat gyakran rövidítve adják meg: DST, DCT. A nevezett transzformációk inverz változatait IDST és IDCT nevekkel illetik. 3.14. A Fourier-transzformáció
Az integráltranszformációk legismertebbike a Fourier-transzformáció. Igen sokféle alkalmazásával találkozhatunk a digitális képfeldolgozásban a különféle szűrők tervezésétől és megvalósításától a matching-eljárásokig. A transzformáció módosított változata – polárkoordináták bevezetésével –, az ún. Hankel-transzformáció (más néven Fourier-Bessel-transzformáció) körszimmetrikus fizikai rendszerek, például lencsék vizsgálatában igen fontos. A Fourier-transzformáció két dimenzióban a következő összefüggések szerint számítható ki f ( x, y ) függvényre: F (u , v ) =
+∞+∞
³ ³ f ( x, y ) ⋅ e
− i ( xu + yv )
du dv
(1)
− ∞− ∞
A definíció diszkrét esetre: F (u , v ) =
+∞
+∞
¦ ¦ f ( x, y ) ⋅ e
−i ( xu + yv )
(2)
m = −∞ n = −∞
Láthatóan az általános integráltranszformáció kernelje jelen esetben: K ( x, y, u, v ) = e − i ( xu + yv )
(3)
114
A Fourier-transzformáció szinusz- és koszinusz-tagok összegét tartalmazza. Az Eulerféle formulák szerint ugyanis e inx = cos(nx) + i ⋅ sin(nx)
(4)
e −inx = cos(nx) − i ⋅ sin(nx)
Az Euler-formulák segítségével a Fourier-transzformáció szinusz- és koszinusztranszformációk összegét jelenti, ahol a szinusz-transzformációban a függvény páros alfüggvénye, a koszinusz-transzformációban pedig a páratlan alfüggvénye szerepel. A képfeldolgozásban a (2)-es képlet csak módosítva használható, hiszen a pixelek száma véges. A gyakorlatban diszkrét Fourier-transzformáció (DFT) alatt a következő képlettel számolnak: M −1 N −1
F (u, v ) = ¦¦ f ( x, y ) ⋅ e
2π · § 2π xu + yv ¸ −i ¨ N ©M ¹
(5)
x =0 y = 0
A transzformáció inverzére pedig a következő összefüggés érvényes (IDFT): 1 f ( x, y ) = MN
M −1 N −1
F (u, v ) ⋅ e
2π 2π i xu + yv N M
(6)
u =0 v =0
A DFT-ben szereplő M és N az adatok számát jelenti az egyes változók szerint. A képletben szereplő i komplex egységgyököt16 a villamosmérnöki gyakorlatban j-vel jelölik. A szakirodalomban többféle Fourier- és diszkrét Fourier összefüggés is található. Fontos, hogy a transzformációt és annak inverzét mindig csak az összetartozó képletpárral szabad használni! A gyakorlati számításban nagy könnyítést jelent az, hogy a kétdimenziós Fouriertranszformáció átírhatók két, egymás után végrehajtott egydimenziós transzformációra. A transzformációt a következők szerint is felírhatjuk: F (u , v ) =
M −1 − i 2π xu M
e x =0
2π −i yv º ª N −1 ⋅ « f ( x, y ) ⋅ e N » ¼ ¬ y =0
(7)
A (7) képlet pedig már szétbontható két alkifejezésre: N −1
F ′(u , v ) = ∑ f ( x, y ) ⋅ e
−i
2π yv N
(8)
y =0
és F (u, v ) =
16
M −1 − i 2π xu M
∑e x =0
⋅ F ′(u , v )
(9)
i = −1 115
Az első lépésben tehát csak y szerint kell elvégezni a transzformációt, s kapjuk meg F ′(u, v ) segédfüggvényt, majd a következő futásnál számítjuk a végeredményt. A képfeldolgozó szoftverekben sokszor megvalósítják ezt a kiszámítási módot. Ha a szoftver kétszeri lefutásra adja meg a Fourier-transzformáció eredményét, egészen biztosan ezt a fajta kiszámítást követi. A transzformáció illetve annak inverzének kiszámítására 1965-ben Cooley és Tukey kidolgozta a 2 hatvány számú adatra működő gyors Fourier-transzformációt (FFT és IFFT). A gyors Fourier-transzformációnak több, igen hatékony algoritmusa létezik. Ezen algoritmusokat abban az esetben is célszerű használni, ha adataink darabszáma nem kettő-hatvány, ekkor nullával ki kell egészíteni17 azzá. Például 2000 pixel esetében könnyen ki lehet egészíteni 2048-ra az adatok számát, így a gyors Fouriertranszformáció alkalmazható s a számítás gyorsabban végezhető, mint a diszkrét transzformációval. A transzformáció eredménye a képpel megegyező méretű mátrix, amelynek elemei a komplex Fourier-együtthatók. A villamosmérnöki gyakorlatból átvéve DC-tagnak is nevezett F (0,0) -tag a teljes kép intenzitásának átlagértékének M × N-szeresét (esetleg más képlet alapján annak csak egyszerűen az átlagát) jelenti. A Fourier-transzformáció számításánál figyelembe szokták venni a szinusz- illetve koszinusz-függvények, következésképp a Fourier-transzformáció szimmetriáit. Ez azt jelenti, hogy a kép negyedeit felcserélve, átrendezve szokták az együtthatókat megadni. A Fourier-együtthatók koordinátarendszere így mindig a transzformált kép középpontjában található. Mivel F (u, v ) komplex, így igaz, hogy F (u, v ) = Re[F (u , v )] + i ⋅ Im[F (u, v )]
(10)
ahol Re[] ⋅ a valós részt, Im[] ⋅ pedig a képzetes részt adó függvény. A Fourier-transzformációval kapott F -együtthatómátrix segítségével definiálhatjuk a következő jellemzőket: •8
magnitúdó-spektrum:
[
]
M (u, v) = ln Re(F (u, v )) + Im(F (u, v )) = ln F (u, v ) •8
2
2
fázis-spektrum: ª Im(F (u , v )) º Φ(u, v ) = arctan « » ¬ Re(F (u, v )) ¼
17
(11)
(12)
ang. zero padding
116
•8
teljesítmény-spektrum: P(u, v ) = Re[F (u, v )] + Im[F (u, v )]
(13)
Láthatóan a magnitúdó-érték a Fourier-együtthatók abszolút értékének természetes ( e ) alapú logaritmusa. A Fourier-transzformációt csak fekete-fehér tónusos képekre lehet alkalmazni; színes képeknél a transzformációt sávonként hajtják végre. A 108. ábrán egy monokróm tónusos képre a Fourier-transzformáció hatását mutatom be.
a) az eredeti kép
b) a kép magnitúdó-spektruma
c) a kép fázis-spektruma
d) a kép teljesítmény-spektruma (kontrasztfokozással)
108. ábra Kép és annak Fourier-transzformáltjai A transzformáltak elkészítésénél az együtthatókat a szokásos (0, 256) egészértékű megjelenítési tartományba kellett átskálázni. A teljesítmény-spektrum ábrájának dinamikája nagyon nagy, ezért azért, hogy lehessen látni legalább néhány együtthatót, kontrasztfokozást végeztem. Az eredménykép sarkaiban fel lehet fedezni némi „eltérést”. Ehhez igen hasonló képet mutat a magnitúdó-spektrum ábrája, amelyet azonban gyakrabban úgy készítenek el, hogy a DC-tag a kép középpontjában található meg (109. ábra). Az eltolás alkalmazásakor ügyelni kell arra, hogy a transzformáció inverzének számítása előtt vissza kell helyezni a DC-tagot az eredeti helyére!
117
109. ábra Kép magnitúdó-spektruma középre helyezett DC-taggal Jól látható, hogy a fázis- és teljesítmény-spektrumokat grafikus megjelenítés után nem lehet értelmezni. A magnitúdó-spektrumot a 3.16. fejezetben leírt módokon lehet kiválóan felhasználni szűrésre. A 110. ábrán néhány speciális alakzat és azok Fourier-magnitúdó ábráját mutatom be.
a) függőleges téglalap
b) vízszintes téglalap
c) négyzet 110. ábra Speciális alakzatok és azok magnitúdó-spektrumaik
118
Ha f ( x, y ) függvény Fourier-transzformáltja F (u, v ) , akkor többek között a következő fontos törvényszerűségek igazak: •8 linearitás: F [a ⋅ f1 ( x, y ) + b ⋅ f 2 ( x, y )] = a ⋅ F [ f 1 ( x, y )] + b ⋅ F [ f 2 ( x, y )] •8
skálázhatóság: F [ f (ax, by )] =
•8
1 1 ªu v º ⋅ ⋅ F« , » a b ¬a b¼
(15)
eltolás: F [ f ( x − x0 , y − y 0 )] = e − ix0u ⋅ e − iy0v ⋅ F (u , v )
•8
(14)
(16)
konvolúció: F [ f 1 ( x, y ) ∗ f 2 ( x, y )] = F [ f 1 ( x, y )] ⋅ F [ f 2 ( x, y )]
(17)
ahol ∗ a konvolúció műveleti jele. A fenti szabályok felhasználásával a különböző képfeldolgozási eljárásokban fel lehet használni a Fourier-transzformációt. Segítségével egyes műveletek kiszámítási sebessége megnövelhető (pl. konvolúció). 3.15. A digitális képek szűrése
Azt hiszem, bátran lehetne úgy fogalmazni, hogy a digitális képfeldolgozás leggyakrabban használt eszközei a szűrők. Mind a grafikai célú, mind a mérnöki képfeldolgozó szoftverek, az orvosi vagy távérzékelt képek feldolgozó programjai sűrűn használnak különböző képszűrési eljárásokat. A képfeldolgozásban használatos szűrőket (filtereket) a következők szerint lehet csoportosítani:
119
Digitális képszûrõk
Konvolúciós szûrõk
- Simító szûrõk - Élkiemelõ szûrõk - Egyéb konvolúciós szûrõk
Nem-konvolúciós szûrõk
- Medián szûrõ - LIFE-szûrõ - Egyéb nem-konvolúciós szûrõk
Szûrõk a frekvencia-tartományban
- FIR-szûrõk - Homomorf szûrõk
111. ábra A digitális képszűrési eljárások csoportosítása A következő fejezetekben részletesebben is bemutatom a főbb szűrőkategóriákat. 3.16. Szűrés a frekvencia-tartományban
A Fourier-transzformációval – amint ezt a korábbi fejezetben már láthattuk – egy integráltranszformáció végrehajtásával a digitális kép intenzitásterét a kép frekvenciaterére alakíthatjuk át. Ezzel a számítással a digitális kép különböző amplitúdójú és frekvenciájú jelekre, mint összetevőkre bomlik szét. A frekvencia-értékek a számítás során mindkét koordinátatengely mentén változik: egyre növekszik. A transzformációval éppen az egyes frekvenciákhoz tartozó amplitúdókat határozzuk meg. A digitális kép több eszköznek és készítési körülménynek a nyomait tartalmazza. Ezek a nyomok eltérő frekvenciájú hatások következtében kerülnek a képre. A digitális képek ezért a Fourier-transzformációval végrehajtott átalakítását követően kiválóan vizsgálhatók aszerint, hogy mekkora amplitúdójú jelekből áll. Nagyon sokszor a képen jelentkező zavarok meghatározott frekvenciához kötődnek. A kép szűrésekor ezért ezeket a lehatárolható frekvenciájú jeleket kell eltávolítani. A frekvencia-tartományban végrehajtott szűrés tehát nem más, mint a digitális képet alkotó diszkrét jelseregből meghatározott értékűek eltávolítása vagy elnyomása. A gyakorlatban háromféle szűrőtípus létezik18. Ezek: •8 •8 •8
az alacsony frekvenciájú jelek megtartását biztosító ún. aluláteresztő (felülvágó) szűrők meghatározott frekvencia-tartományba eső jeleket megtartó sáváteresztő szűrők és a magasfrekvenciájú frekvenciaösszetevőket megőrző felüláteresztő (alulvágó) szűrők.
18
Pontosabban két nagy szűrőcsoport létezik: a véges és a végtelen jelválaszú (FIR – Finite Impulse Response, illetve IIR – Infinite Impulse Response) szűrők. A digitális képfeldolgozásban kizárólag a véges (FIR) típusú szűrőket alkalmazzák.
120
A képfeldolgozási szóhasználatban sűrűn emlegetik ezeket a filtereket a kiszűrt frekvenciák alapján is – lásd zárójelben megadott nevek. A szűrők ezen tulajdonságai jól láthatóak a karakterisztikus ábrákon (lásd e fejezet későbbi része). A frekvencia-tartományban végrehajtott szűrés folyamatát a 112. ábra a és b része mutatja be.
eredeti kép
FFT
szûrés
IFFT
szûrt kép
a) általános szűrési folyamat
eredeti kép
log
FFT
szûrés
IFFT
exp
szûrt kép
b) homomorf szűrési folyamat 112. ábra A digitális kép szűrése a frekvencia-tartományban A gyakorlatban sokszor módosítva használják a szűrést: nem az intenzitásokból számított Fourier-együtthatókkal történik a szűrés (a rész), hanem – a homomorf eljárásban használt módon – az intenzitások logaritmusára végzett Fouriertranszformáció után. Ez utóbbi esetben a szűrést követően a logaritmus ellentett műveletével, a hatványozással vissza kell térnünk az intenzitás értékekhez. A homomorf szűrés alkalmazásakor ügyelni kell arra, hogy a minimális intenzitásérték nem lehet nulla! A logaritmus függvényben többnyire a természetes e-alapú logaritmust használják. A frekvencia-tartományban végzett szűréskor a következő egydimenziós filterfüggvények általánosítását alkalmazzák előszeretettel: Az ideális aluláteresztő szűrő függvénye: 1 ha ω ≤ ω 0 H (ω ) = ® ¯0 ha ω > ω 0
(1)
ahol ω a szűrőfrekvencia, ω0 határfrekvencia. Láthatóan éles határ mentén vág a szűrő. Keresztmetszeti profilja a 113. ábrán látható. Az ideális felüláteresztő szűrő pedig a következő formulával írható le: 0 ha ω ≤ ω 0 H (ω ) = ® ¯1 ha ω > ω 0
(2)
Az ideális szűrők karakterisztika-görbéi a következő ábrán láthatók:
121
b) ideális felüláteresztő szűrő
a) ideális aluláteresztő szűrő
113. ábra Az ideális alul- és felüláteresztő szűrő karakterisztikája További gyakran használt szűrőféle az aluláteresztő Bartlett-szűrő: H (ω ) = −
ω +1 ω0
(3)
és a felüláteresztő Bartlett-szűrő: H (ω ) =
ω ω0
(4)
A Bartlett-szűrőket hívják háromszög-szűrőknek is, mivel átviteli függvényük háromszög alakú.
b) felüláteresztő Bartlett-szűrő
a) aluláteresztő Bartlett-szűrő
114. ábra Alul- és felüláteresztő Bartlett-szűrők
122
Gyakran alkalmazzák a képfeldolgozásban is az aluláteresztő Butterworth-szűrőt: H (ω ) =
ω 02 1 = 2 2 2 ω0 + ω 1 + (ω / ω 0 )
(5)
Az iménti Butterworth-szűrő általánosított képlete a következő: H (ω ) =
1 1 + (ω / ω 0 )
(6)
2n
ahol n változtatásával a szűrőfüggvény lefutása változtatható. Az aluláteresztő Butterworth-szűrő szimmetriáját kihasználva kaphatjuk meg a felüláteresztő szűrőt. A Butterworth-szűrők karakterisztika ábrái a 115. ábrán láthatók.
b) felüláteresztő szűrő
a) aluláteresztő szűrő
115. ábra Alul- és felüláteresztő Butterworth-szűrők Az aluláteresztő Gauss-szűrőt a következők szerint értelmezzük: H (ω ) = e
§ ω − ¨¨ © ω0
· ¸¸ ¹
2
(7)
A Gauss-féle szűrő szimmetriáját is kihasználhatjuk a felüláteresztő Gauss-szűrő létrehozásakor. Karakterisztikáik a 116. ábrán láthatók.
123
b) felüláteresztő szűrő
a) aluláteresztő szűrő
116. ábra Alul- és felüláteresztő Gauss-szűrők Néhány ismert képfeldolgozó programcsomagban megtalálható az aluláteresztő Hanning-szűrő: H (ω ) =
§ ω ⋅π 1 §¨ 1 + cos¨¨ ¨ 2© © 2ω 0
·· ¸¸ ¸ ¸ ¹¹
(8)
A függvény szimmetrikus, így nem meglepő a felüláteresztő szűrő létrehozása.
a) aluláteresztő változat
b) felüláteresztő változat
117. ábra Alul- és felüláteresztő Hanning-szűrők A gyakorlatban még az analóg jelfeldolgozás korszakából származik igen sok szűrőfajta kidolgozása. További digitális szűrőket is létre lehet hozni. Nézzük meg, hogy hogyan lehet a fenti szűrőfajták segítségével sáváteresztő szűrőt létrehozni. A recept igen egyszerű, hiszen vagy egy szimmetrikus, eltolható szűrőfüggvényt alkalmazunk, melynek maximális értékét szabadon eltolhatjuk, s így állítjuk be az áteresztendő sáv közepét. A másik lehetséges megoldás, hogy két – egy alul- és egy felüláteresztő – szűrőt kombinálunk össze, s ezek együttesen alkotják a sáváteresztő szűrőt. Az előbbire példaképpen nézzük meg a Butterworth-szűrőt!
124
ω 02 H (ω ) = 2 ω 0 + (ω − δ ) 2
(9)
ahol a szükséges paraméterek a következők: ω0 határfrekvencia, δ eltolási paraméter. Ez alapján egy lehetséges sáváteresztő szűrőt a 118. ábra mutat be.
118. ábra Butterworth típusú sáváteresztő szűrő A 119. ábra néhány fontosabb szűrő kétdimenziós alakját (karakterisztikáját) mutatja be.
a) ideális aluláteresztő szűrő
b) ideális felüláteresztő szűrő
c) aluláteresztő Bartlett-szűrő
d) felüláteresztő Bartlett-szűrő
125
f) felüláteresztő Hanning-szűrő
e) aluláteresztő Hanning-szűrő
119. ábra Néhány kétdimenziós szűrő karakterisztikája
120. ábra Kétdimenziós sáváteresztő Butterworth-szűrő karakterisztikája A kétdimenziós szűrőket a frekvencia-tartományban végrehajtott szűréskor úgy használják, hogy a Fourier-transzformációval előállított együtthatókat összeszorozzák a szűrőmátrix elemeivel. Az egyes szűrőfajták más és más módon módosítják a képet. E szűrők más és más jelösszetevőt változtatnak meg s teszik ezáltal a képet jobbá. Mivel a digitális képek ilyen jellegű szűréséhez rengeteg tapasztalat szükséges, ezért használata nehéz. A fentieken túl még jócskán lehet a szakirodalomban digitális képekre alkalmas szűrőt találni. Néhány szűrőfajta hatását a 122-123. ábrák illusztrálják.
b) a kép Fourier-transzformáltja
a) az eredeti kép
121. ábra Az eredeti (szűrendő) kép és annak Fourier-magnitúdóábrája 126
a) ideális aluláteresztő szűrő hatása
b) a visszatranszformált kép
c) Bartlett-aluláteresztő szűrő hatása
d) a visszatranszformált kép
122. ábra Aluláteresztő szűrők hatása a képekre
a) ideális felüláteresztő szűrő hatása
b) a visszatranszformált kép
c) Bartlett-szűrő hatása
d) a visszatranszformált kép
123. ábra Felüláteresztő szűrők hatásábrái A szűrők használatakor nyilvánvalóan a lehetséges paraméterek megváltoztatásával a szűrés mértéke – a kivágandó frekvenciájú összetevők – szabályozható. Ez például a szűrő tágasságával egyszerűen kezelhető.
127
A frekvencia-tartományban elvégzett szűrés további lehetősége, hogy megvizsgáljuk a digitális kép Fourier-transzformációval kapott átalakítását. A legtöbb információt a magnitúdó-ábrán találhatjuk. Ezeken az ábrákon sokszor fel lehet fedezni, hogy a képet ért zavaró zajok konkrét diszkrét pontokban, meghatározott frekvenciánál jelentkeznek. Eltávolításuk a magnitúdó-kép módosításával elvégezhető. Íly módon például a képek szabályos csíkozottságát lehet megszüntetni.
128