Lonely HDR, azaz HDR kép készítése egyetlen képből

Sok mindenre képes az ember, ha van egy kis ideje. Például elgondolkodhat, hogyan tudná a rengeteg közepesen jól sikerült fényképét egyszerűen feltúrbózni, amit már szívesebben mutogat bárkinek. Kis gyakorlással csodát lehet művelni Photoshop (vagy a nyílt forráskód híveinek – küztük nekem – Gimp) segítségével, azonban ez néhány ezer kép nagyságrendnél kicsit idő- és munkaigényes. Fontos tehát, hogy mindezt automatikusan tudjuk csinálni. Már csak egy jó ötlet hiányzik. Ezen segít ha kicsit ránézünk a HDR technológiára.

High Dynamic Range imaging, avagy mi is ez? – dióhéjban

Sok mindenre képes az ember, ha van egy kis ideje. Például elgondolkodhat, hogyan tudná a rengeteg közepesen jól sikerült fényképét egyszerűen feltúrbózni, amit már szívesebben mutogat bárkinek. Kis gyakorlással csodát lehet művelni Photoshop (vagy a nyílt forráskód híveinek – küztük nekem – Gimp) segítségével, azonban ez néhány ezer kép nagyságrendnél kicsit idő- és munkaigényes. Fontos tehát, hogy mindezt automatikusan tudjuk csinálni. Már csak egy jó ötlet hiányzik. Ezen segít ha kicsit ránézünk a HDR technológiára.

High Dynamic Range imaging, avagy mi is ez? – dióhéjban

Kicsit bővebb leíráshoz: http://en.wikipedia.org/wiki/High_dynamic_range_imaging

A HDR célja általában olyan képek létrehozása, amelynek minden része teljes részletességgel látszik, attól függetlenül, hogy az sötét-e vagy világos. Ami azért nehéz, mert ha a világos részt kiemelve rövid ideig exponál a gép, a sötét részek nem fognak látszódni, míg túlexponált képpel előhozhatóak a sötét részletek, de a világos rész lesz kivehetetlen. A HDR alapötlete az, hogy egyetlen kép helyett csináljunk többet, különböző exponálással. Ezen képek alapján aztán összerakható olyan kép, amelynek minden részlete a megfelelő exponálással készült.

HDR-hez több kép kell, de nekünk csak egy van?

Nyílván egyetlen képből nem nyerhető annyi információ, mint akár három különbözőből, azonban nem is ezt akaruk elérni. A cél csupán az, hogy a rendelkezésre álló képből hozzuk ki a lehető legtöbbet, és ehhez használjuk fel a HDR-nél is használt technikát. A módszer nem más, mint a képet visonylag apró szegmensekre bontjuk, és minden szegmensre kiválasztjuk a rendelkezésre álló variánsok közül a legjobbat. A HDR esetén fizikailag van több képünk, ebben az esetben ugyanazt a képet világosítjuk/sötétítjük néhányszor. A világosság változtatásával ugyan nem nyerünk információt, a kép hatását a nézőre azonban jelentősen befolyásolhatjuk. Így tehát minden szegmensre kiválasztjuk az optimálisat, elsimítjuk az illesztéseket, végül kicsit megnöveljük a színtelítettséget, hogy tényleg szép legyen.

A fenti ötlet alapján készült egy kis java program, ami mély elmélkedés árán egész szép eredményt ér el a bemeneti képpel. Letöltés után valami ilyesmit kell beírni egy parancssorba:


java -jar lonelyhdr.jar input.jpg output.jpg

Rövid várakozás után egy kicsinosítgatott kép kacsint vissza ránk:

input.jpg output

Letöltés: lonelyhdr.jar

Fontos megjegyzés: a program értelmes eredményt csak megfelelő méretű (értsd: mai átlagos fényképezőgép által készített) képpel tud elérni. A fenti kép például egy 5 megapixeles szappantartóal készült, és a képet eredeti méretében (2592 x 1944 pixel) eresztettem át a programon.