|
Interpoláció – ezzel a szóval gyakran találkozhat a digitális fotós. Aki mélyebben beleásta magát a digitális képalkotás mikéntjeibe, az már a gépen belül lezajló folyamatoknál találkozhatott, a Bayer mozaik, színcsatornák és a lineáris interpoláció nevével. De azok is találkozhattak ezzel a folyamattal, – még ha akaratlanul is – akik legalább egy fotót nyomtattak már életükben.
Mi is az interpoláció ?
A digitális fotózásban szinte minden matematika és fizika. Az interpoláció alapvetően a matematika tudományához köthető fogalom.
Már szinte látom, ahogy az érzékenyebb lelkű olvasóknak e szavak hallatán hideg veríték ül ki tarkójukra és máris az egér után nyúlnak, hogy itt fejezzék be a cikk olvasását. Ne tegyék kedves olvasók! Ígérem, hogy nem mélyedünk bele túlságosan ezen tudományágak rejtelmeibe, csak amíg szükséges és a cikk írója is érti, amiről ír.
Az interpoláció lényegében bizonyos számú ismert értékből határoz meg egy vagy több ismeretlen értéket. A meghatározás folyamata különbözteti meg egymástól az interpolációs eljárásokat. Ez számos módon történhet.
Miért érdekel ez bennünket ?
Ahogy fentebb említettem, aki nyomtatott vagy felnagyított már fotót, az találkozhatott az interpolációval.
Egy digitális fotó képpontokból (pixelekből) áll. Minden egyes képpont leírható matematikai értékkel. Az egyszerűség kedvéért maradjunk egy fekete-fehér digitális fényképnél. A fotó minden egyes képpontjához egy 0 és 255 közötti számérték rendelhető. Íme egy fekete-fehér (szürkeárnyalatos) fotó részlete, felnagyított pixelekkel és a hozzájuk tartozó világossági értékkel.
A digitális fotó nagyításakor eredeti méretének akár többszörösére is nőhet, valódi számérték azonban csak az eredeti képpontokhoz tartozik, a nagyítás során „beillesztett” új képpontok értékét hivatott kiszámolni az interpolációs algoritmus. Az előző képrészlet nagyított változatában a cél a köztes képpontok világosság értékének meghatározása. Erre szolgál az interpoláció.
A legegyszerűbb interpolációs algoritmus a Legközelebbi szomszéd, ismertebb angol nevén Nearest neighbor. Nem csinál mást, mint az ismert pixel értékét behelyettesíti az ismeretlen összes környező pixelhelyre. Így növekmény ugyanazt az értéket kapja, mint az eredeti pixel, ugyanolyan színű és világosságú lesz. Ez a leggyorsabb módszer, de egyben a legpontatlanabb is. Túlzott nagyításnál a kép kusza, széteső lesz.
Gyakorta használt eljárás a Kettős lineáris, vagyis Bilinear is. Itt a két ismert pixel közti képpontokat fokozatos lépésközökkel határozza meg a program. Egy ismert 10 és 30 értékű képpont közé például 20-as értékű képpont kerül. A Kettős lineáris interpoláció többnyire 4 környező pixel alapján számol, vízszintes és függőleges irányban. Az eredmény egy nagyítva is képszerű, de meglehetősen elmosott fotó.
Az úgynevezett Kettős köbös, azaz Bicubic interpoláció 16 környező képpontok alapján átlagol.
Hasonló módon működnek más hagyományos (pl. Bspline, Lanczos) eljárások is. A különbség a képpontokat kiszámító matematikai modell, ami látható különbségekhez vezethet.
Az interpolációs eljárások között megkülönböztetünk hagyományos (pl. Nearest neighbor, Bilinear, Bicubic, Bspline, Lanczos) és adaptív (pl. Geniune Fractal, Sspline) módszereket. A hagyományos módszerek mindig csak a környező ismert pixelek átlagát veszik a számítás alapjául, így a meghatározandó pixel értéke csupán annak képen elfoglalt pozíciójától függ. Az adaptív interpolációk viszont az egyes pixelek értékeit is figyelembe veszik
Az újfajta interpolációs eljárások nem csak a képpont értékeket, hanem a kép karakterét – az éleket, a mosott területeket – is figyelembe veszik, hogy a nagyított kép is megőrizze az eredeti méretű kép alapvető tulajdonságait. Mindezt egybevéve a következőkben megvizsgáljuk néhány interpolációs algoritmus eredményeit.
Hogyan teszteltünk?
Tizenkét fejlettebb, fejletlenebb interpolációs eljárást vettünk alapul, melyek többsége az általánosan használt képszerkesztő, vagy katalogizáló programokban megtalálható. Három szoftvert használtunk fel erre a célra.
Adobe Photoshop
|
Világszerte ismert és elismert fotószerkesztő alkalmazás. Képméret (Image Size) szekciójában háromféle alapvető interpolációs eljárás közül választhatunk: Nearest neighbor, Bilinear és Bicubic.
Az újabb programverziókban választható még kétféle Bicubic karakter, lágyabb és élesített végeredménnyel. A kép nagyításra a megszokott pixel és nyomtatási oldalméret, valamint felbontás beállítások használhatók.
Genuine Fractal PrintPro
|
A LizardTech, főként nyomtatáshoz és méretezéshez használható fraktálos pluginja, melyet a Photoshopban használtunk. Alkalmazása kissé körülményes. A nagyítandó képfájlt először a plugin saját .STN (STING) formátumába kell mentenünk , mely veszteségmentes illetve veszteséges tömörítéssel lehetséges. A mentett fájlt ezután megnyitva automatikusan megnyílik a programablak, ahol fraktálos interpolációra illetve részlet kivágásra nyílik lehetőségünk a Photoshopnál összetettebb beállításokkal, háromfokozatú minőség választással. A méretezési paraméterek külön menthetők.
XnView
|
Ingyenes képkatalogizáló alkalmazás, kiterjedt képszerkesztési funkciókkal. Méretezési lehetőségei nagyjából a Photoshoppal azonosak, azzal különbséggel, hogy 8 féle interpolációs eljárást választhatunk. Az ott megismert Nearest neighbor és Bilinear módozatokon túl a Hermite, Gaussian, Bell, Bspline, Mitchell és Lanczos metódusokat használtuk.
Photozoom Professional
|
Az egykori S-spline Pro szoftver továbbfejlesztett utódja, a Shortcut cég gondozásában. Méretezéshez használható célszoftver, így nem meglepő, hogy ez a szoftver nyújtja a legtöbb szolgáltatást ezen a téren. Alapvetően a Sspline interpolációra épül, de további 9 interpolációs eljárás választható. Előre mentett minőségi beállításokat, élesítést, a képkarakter finomhangolását és élsimítást is alkalmazhatunk segítségével.
Kissé kakukktojás jellegű volt a lépcsős (Stair) interpoláció néven elhíresült metódus alkalmazása. Több plugin és Photoshop action is használja ezt a módszert (pl. Fred Miranda’s Stair Interpolation). Lényege, hogy nem egy lépésben, hanem több, finom ugrással méretezünk föl egy képet, így jobb eredményt kapva. A módszert a Photoshop Bicubic interpolációjának 110%-os lépéseivel alkalmaztuk.
A felhasznált interpolációk tehát:
- Nearest neighbor
- Bilinear
- Bicubic
- Hermite
- Gaussian
- Bell
- Bspline
- Mitchell
- Lanczos
- Sspline
- Genuine Fractal
- Stair (Bicubic)
Így állt össze a „piszkos tizenkettő”, akiket kétféle eljárással próbáltunk kellemetlen helyzetbe hozni. Egy Adobe RAW konverterrel 8 bites TIFF formátummá alakított, Canon RAW (CRW) fotóból kivágtunk egy 500×375 képpontot részletet. A kép előzetesen élesített volt. A részletet először az adott interpolációs eljárással 33%-ra kicsinyítettük, majd ugyanazzal az interpolációs technikával ismét 500×375 képpont nagyságúra növeltük, így megkaptuk az eredeti méretet.
A másik módszerrel egy 100×100 képpontos, vektoros formákból és text elemekből álló bitmap képet 500%-ra nagyítottunk.
Eredmények
|
Összehasonlításként a két eredeti kép.
Kattintson a nézőképekre az eredeti méret megtekintéséhez! |
|
Nearest neighbor
Bilinear
Bicubic
Hermite
Gaussian
Bell
Bspline
Mitchell
Lanczos
Genuine Fractal
Sspline
Stair (Bicubic)
Összegzés
A tapasztaltak alapján elmondható, hogy a legegyszerűbb interpolációs algoritmusok közül megfelelő eredmény érhető el már a Bicubic metódus alkalmazásával is, hiszen egyáltalán nem marad el az „egzotikusabb” eljárások mögött. A hagyományos, ingyenesen is beszerezhető eljárások között a Lanczos interpolációval kapunk a Bicubichoz sok tekintetben hasonló, némely téren azonban jobb eredményt.
A piszkos tizenkettő legjobbjai a végeredményt tekintve a G Fractal és az Sspline interpolációk, szolgáltatások terén pedig a széleskörűen hangolható Sspline viszi el a pálmát, amely ezzel együtt harci feladatunk abszolút túlélőjének bizonyult. A kiváló Photozoom Professional program képfinomító szolgáltatásaival karöltve több tartalék rejlik ebben az algoritmusban, mint a többiben. Hátránya, hogy ez az algoritmus ingyenes szoftverben nem elérhető.