Obrada digitalne fotografije u Linuxu

Imamo li open source sustav, sve što nam treba za procedure uređivanja našeg foto albuma i arhiviranja uspomena najvjerojatnije je već instalirano gore. Tu su alati za prebacivanje slika s fotoaparata, njihov pregled, sređivanje u raznim programima za obradu fotografija, izradu galerija slika, a naravno i njihovo snimanje na neki od neizbrisivih medija. Samo prebacivanje najmanje je mistično od svega. Dok su stare distribucije imale raznih problema u jezgri s prepoznavanjem USB memorije (kako se i većina fotoaparata predstavlja), danas je to sasvim elegantno riješeno. U novijim se grafičkim sučeljima prilikom priključenja pojavljuje prozor za otvaranje direktorija s datotekama isto kao i kod USB sticka. Dovoljno nam je da prevučemo slike u za to predviđen direktorij i nastavimo sa sljedećim korakom. Hoćemo li izravno spojiti aparat USB kablom na računalo ili ćemo izvaditi karticu i ubaciti ju u čitač kartica, svejedno je (barem što se Linuxa tiče). Ako nam se ne pojavljuje prozor s direktorijem, uređaj možemo i montirati poput particija na disku. Baš kao i USB stick, obično se nalaze na oznaci /dev/sda1. Naredbom dmesg će se ispisati dovoljno informacija za doznati koji device zauzima fotoaparat.

Gphoto

Neki modeli kamera svoj protokol za komunikaciju s računalom nisu izveli na tzv. USB Mass storage način već proprietary protokolom. Kao i obično, njihovi programi za prebacivanje slika pisani su isključivo za jednu, najčešću platformu, dok su korisnici Linuxa ostali kratkih rukava. Za takve se namjene razvio program Gphoto, koji je za neke kamere uspio bolje proučiti protokol i implementirati ga, za neke je dobio podršku od proizvođača, dok naravno postoje neke koje nisu uspjeli podržati. Kamere koje podržavaju protokol PTP (Picture Transfer Protocol) također su dobro podržane. Za prebacivanje slika tim programom potrebno je napisati "gphoto2 --get-all-files" pa će iste biti prebačene u tekući direktorij. Za jednostavnije rukovanje razvijeno je grafičko sučelje imena Gtkam, pa se ono svakako preporuča.

DigiKam

DigiKam je sljedeći u evoluciji razvoja programa za skidanje, obradu i katalogizaciju slika. I on podržava razne protokole prebacivanja informacija, pa su čak i slični popisi podržanih aparata, s razlikom da je sad i USB Mass storage dio programa za prijenos čime se povećala univerzalnost. No, to je tek mali dio njegovih funkcionalnosti. Primarni je naglasak na galerijama i organizaciji slika i bez problema bi ga mogli nazvati trenutno najzaokruženijim programom u tu svrhu pod Linuxom. Njime slike možemo sortirati u kolekcije i dodjeljivati im ključne riječi i komentare, a jednostavno je i pregledavati EXIF informacije. Integracija s KDE-om je odlična.
Kompletnost aplikacije dodatno podržavaju razni pluginovi za obradu digitalnih fotografija koji su sasvim dovoljni za relativno složenu obradu fotografija. Tu su naravno svi alati za svjetlinu, kontrast i gamu, zasićenje, boje, nivoe boja, histogram, pretvaranje u crno-bijelu fotografiju, normaliziranje i slične. Uz dodatak DigiKamImagePluginsa (zaseban paket) program se pretvara u alat kojim je moguće učiniti bilo što s digitalnom fotografijom, bez pokretanja zasebnog programa poput Gimpa. Od specifičnih alata za fotografiju tu je alat za popravak crvenih očiju, zamućivanje (blur), izoštravanje (sharpen) fotografija, unsharp (izoštravanje slike bez povećanja šuma), brisanje mrtvog piksela na senzoru, popravljanje vinjetiranja i rotacija za popravljanje nagnutog horizonta. Od raznih umjetničkih spomenimo efekte poput ulja na platnu, efekta solarizacije, utiskivanja (emboss), infracrvene fotografije i slično.
Postoji velik broj manje ili više kvalitetnih programa za katalogizaciju, a u posljednje se vrijeme dosta spominje i poznata Picasa, Googleov proizvod koji nažalost nije open source. Njene mogućnosti obrade puno su skromnije, no zato ima drugih prednosti, poput snimanja kolekcije na CD, olakšane izrade galerije i njenog postavljanja na Internet.

Sirove slike

Ako su slike na fotoaparatu zabilježene u RAW formatu (više o njemu u okviru) trebat će nam posebni programi za njihovu obradu, odnosno konverziju. Kad ih skinemo s uređaja, dobit ćemo poveću datoteku nastavka ovisno o proizvođaču: NEF (Nikon), CRW (Canon), ORF (Olympus) itd. Njih će trebati pretvoriti u nešto što će se dalje dati obrađivati, ali i u procesu podesiti upravo one parametre zbog kojih smo zapravo u prednosti pred JPEG-om. Za to nam može poslužiti nekoliko programa. Za masovnu obradu iz naredbenog retka možemo koristiti dcraw, kao argumente mu zadavati vrijednosti za svjetlinu, gamu, balans boja, a dobit ćemo izlaz u PPM format, a iz njega pak bilo koji drugi. Postoji i plugin za Gimp. Bolja je varijanta koristiti Ufraw, grafičko sučelje za dcraw koje ima pregled slike dok ju mijenjamo. Može se očitavati sa histograma i namještati krivulje boja, mijenjati temperatura bijele točke i razni drugi parametri.
Spomenimo i Rawstudio, program još u aktivnom razvoju, no već vrlo upotrebljiv. Iako nije open source, jedan od vrlo kvalitetnih programa za obradu slika zove se Bibble. Hvale se kako su možda i najbrži program u RAW prebacivanju slika, a odlikuju ih i druge mogućnosti, poput ispravljanja nesavršenosti leća: vinjetiranje, ljubičasti rubovi (purple fringing) i distorzija leća. Jedan od velikih problema slikanja u uvjetima slabe vidljivosti i povećanih ISO vrijednosti na jeftinijim aparatima: šum, može se unutar Bibblea popraviti tehnologijom Noise Ninja.

Gimp

Iako se DigiKamom slike mogu obraditi na nevjerojatne načine, za zaista ozbiljnu obradu ipak će nam trebati referenca open source digitalne obrade slika: Gimp. Program je to koji se razvija već preko desetljeća, zagovornici ga uspoređuju s Adobe Photoshopom dok mu pak protivnici mu ne daju pristup u profesionalne vode. Činjenica je da je dovoljan za većinu primjena koje će trebati prosječnom amateru, a postoje svjedočanstva kako su se i ozbiljne stvari pripremale za tisak pomoću njega. Nažalost, workflow i filozofija korištenja je drugačija od Windows ekvivalenata i netko navikao na Photoshop ili Paint Shop Pro imat će velike probleme kod ozbiljnijeg rada sa slojevima (layer) i sličnim kompleksnijim alatima. Naravno, isti alati se zovu isto, tako da će poznavatelj terminologije uz manje ili više truda postići rezultat (identičan ili barem sličan), čim se navikne na specifičnosti pojedinog alata ili barem drugačiji raspored njegovih svojstava. Nažalost, u okviru ove teme nema previše mjesta za objašnjavati Gimp od početka. Nadamo se da će takvih tema biti nešto kasnije.

Panorame i HDR

Turistička putovanja skoro uvijek podrazumijevaju neke slike sa širokim kutevima, kojima se želi obuhvatiti čim više horizonta. To naravno zahtijeva i širokokutne objektive, a i onda se može uhvatiti kut samo do određene granice. Bolje je slikati seriju fotografija normalnog kadra, samo s horizontalnim pomicanjem aparata nakon svake. Naravno, za takve kadrove potreban je stabilan stativ i slike identičnih parametara (ekspozicija itd.) kako bi slike bile ujednačene. Također, svaka slika treba se preklapati s prethodnom u polovici kadra. Programi koji ih znaju spojiti zovu se Panorama tools i grafičko sučelje za njih, Hugin.
U posljednje su vrijeme popularne tzv. HDR (high dynamic range) slike, odnosno set slika sniman različitim ekspozicijama kako bi se dobile svjetlije i tamnije slike, odnosno različito eksponirani pojedini dijelovi. Pod Linuxom postoje alati koji će ih spojiti i generirati sliku koja ima pravilno osvjetljene i tamne i svijetle dijelove. PFSTools služe upravo za tu svrhu, no dosta je muke potrebno da se velikim brojem malih podprogramčića iz naredbenog retka to natjera da radi. Cinepaint (bivši Film Gimp) je upravo alat kojim se to može napraviti iz grafičkog sučelja.

Imagemagick

Problem s velikom količinom slika je što zahtijeva dosta vremena da se svaka slika obradi. Nekoliko stotina slika u jednom direktoriju značilo bi nekoliko sati pojedinačnog otvaranja svake slike i repetitivne operacije nad svakom. Ako je ta operacija relativno jednostavna i ne zahtijeva vizualan pregled situacije i ručno namještanje parametara, postoje načini da se ona napravi s jednom naredbom. Također, slična je situacija na serverima, kad postoje razne web aplikacije koje moraju obavljati operacije nad slikama na samom serveru, a to mogu isključivo iz naredbenog retka. Upravo za takve potrebe nastao je program ImageMagick, zapravo skup manjih alata koji se pozivaju s raznim parametrima. Te alate moguće je pozivati i iz raznih skripti i programskih jezika (već spomenute web aplikacije), pa je to rezultiralo brojnim grafičkim sučeljima za njih. Također, napisane su i dvije knjige na tematiku ovog programa. Iako i Gimp ima mogućnosti skriptiranja, jezik kojim se koristi nije jednostavan. ImageMagick u nekim slučajevima ima prednost, jer dozvoljava precizniju kontrolu nad parametrima. Primjerice, mijenjamo li veličinu slike, dostupno nam je čak 15 algoritama po kojima će se to odvijati (Gaussian, Bessel, Hamming, Lanczos itd.). Gimp ih, za usporedbu, podržava samo dva.
Ogromne mogućnosti ovog programa ipak nećemo u potpunosti opisivati, no one mogućnosti bitnije za fotografiju svakako budemo, u onim tipičnim scenarijima korištenja koji bi se koristili i u posebnim grafičkim programima. Zapravo, dobar dio alata moćnijih programa (Gimp) već je implementiran i unutar ImageMagicka, no oba programa imaju svoja područja korištenja. Dovoljno je zapamtiti nekoliko osnovnih alata te njihove opcije. Za osnovne operacije koje često ponavljamo možemo formirati neku skriptu i snimiti ju na sustav. Treba napomenuti kako navođenje opcija nije tipično kao u drugim programima: "imeprograma -imeopcije imedatoteke", jer je u prijašnjim verzijama ImageMagicka to dovodilo do krivih rezultata budući da nije jasno definiralo redoslijed operacija. Sad se programi pozivaju s "imeprograma -opcije1 imedatoteke1 -opcije2 imedatoteke2 itd." No, ako radimo korak po korak ili pak jednoznačne operacije, to nam često ni neće trebati.

Masovna obrada slika

Možda prvi korak nakon skidanja fotografija u neki direktorij mogla bi biti provjera da li su sve slike ispravne, kao i doznati dodatne informacije o slici (EXIF). Naredba identify će nam ispisati osnovne podatke, poput formata zapisa, dimenzija slike i veličine datoteke, broja boja i vremena potrebnog za obradu. Opcija -verbose dat će gomilu informacija o pojedinoj slici. Neće nam nažalost dati mogućnost da išta mijenjamo. Nakon što smo se uvjerili da su sve slike ispravne, možda odlučimo da su prevelike za daljnje korištenje, stavljanje na Internet ili u arhivu na disku (original naravno čuvamo snimljen na neki medij). U smanjivanju slika poslužit će nam program convert, kojem možemo zadati opciju veličine u pikselima ili postotak originalne veličine. Primjerice,
convert slika.jpg -resize 50%x50% slikamanja.jpg
Umjesto postotaka možemo upisati apsolutne dimenzije. Proces mijenjanja veličine uzet će u obzir odnos visine i širine i tako prilagoditi jedan od parametara ako nije dobro namješten. Želimo li nametnuti neku dimenziju, stavit ćemo znak uskličnika odmah iza broja (doduše, zbog ljuske (shell) morat ćemo staviti \ ispred njega)
convert slika.jpg -resize 1024x768\! slikamanja.jpg
Želimo li to napraviti na svakoj slici u direktoriju, ne možemo ručno zadavati imena datoteka već ćemo u pomoć pozvati jednostavnu skriptu
for slk in `ls *.jpg`
do
convert $slk -size 120x90 -thumbnail 120x90 smanjena-$slk
done

Opcija thumbnail ima dodatnu prednost što ukloni višak metainformacija i puno je brža pri radu od običnog smanjivanja. Dvostruko navođenje parametara veličine je zbog brzine obrade. Ako mijenjamo format slika, možemo koristiti drugi alat, bez skripte
mogrify -format gif -thumbnail 120x90 *.jpg
to će sve umanjene slike pretvoriti u GIF format. Pretvorbe između formata bez mijenjanja izgleda i oblika još se jednostavnije mogu napraviti pomoću "convert slika.jpg slika.png". Još jedna od ponekad korisnih opcija je promjena JPG stupnja kompresije. Aparati snimaju sliku s vrlo malim stupnjem kompresije odnosno visokom kvalitetom (85-95%). Opcijom "-quality 70" naredbi convert smanjit ćemo taj stupanj i dobiti nešto lošiju sliku, ali i proporcionalno manju, puno bolje za stavljanje na Internet.
Ponekad je zgodno odsjeći dio slike na rubovima, kako bi se riješili raznih nesavršenosti aparata ili leća, poput vinjetiranja (tamnjenja slike u kutovima) ili prevelikog zamućenja. Za to će poslužiti naredba
convert slika.jpg -shave 100x100 izrezana.jpg

Obrub oko slike

Ponekad je efektno dodati okvir oko fotografije. Postoji velik broj načina za to, a dodavanje najosnovnijeg i jednoličnog, boje neba, dobit će se naredbom convert slika.jpg -bordercolor SkyBlue -border 15x15 slikaokvir.jpg Malo eksperimentiranja s okvirima može nam dati 3D izgled, odnosno izdignute neke dijelove okvira: convert slika.jpg -mattecolor SkyBlue -frame 15x15+5+5 slika3Dokvir.jpg Opcijom rotate možemo ispravno osoviti slike napravljene zarotiranom kamerom. convert original.jpg -rotate 90 zaokrenuta.jpg Negativni argument kuta sliku će zarotirati ulijevo. Jedan od posebnih efekata je i neki tekst na slici, koji može označavati datum kad je slika napravljena, URL neke stranice ili jednostavno naslov slike.
convert slika.jpg -font /usr/fonts/arial.ttf -pointsize 36 -draw 'text 100,100 "01.08.2006."' oznacena.jpg
Ako umjesto teksta trebamo neki logotip staviti kao vodeni žig, koristit ćemo alat composite. Idealno je ako pripremimo PNG sliku s transparentnim dijelovima kako bi se bolje uklopila.
composite -gravity SouthEast logo.png slika.jpg spojena.jpg

Prikaz IM-om

Display je još jedan od alata ImageMagicka i služi za prikaz slika, jedini koji ima grafičko sučelje. Poziva se s jednostavnim "display slika.jpg". Otvara se sučelje s prikazom slike zajedno s malim prikazom cijele slike za lakši pregled. U menijima, dostupnim lijevom tipkom miša nalaze se sve moguće opcije cijelog paketa, pa je to dobar uvid u mogućnosti i dobar alat za isprobavanje na pojedinoj slici. Raznim parametrima slike se mogu prikazivati slijedno (slideshow), prikazati se točno određene dimenzije, rotirano na bilo koji način, mijenjati svjetlinu, kontrast i boje na prikazanoj slici, prikazati histogram i razne druge efekte. Također je moguće prikazati galeriju slika, naredbom display 'vid:*.jpg'
Postoji još beskonačno mnogo drugih efekata zanimljivih za proučavanje, a na stranicama http://www.cit.gu.edu.au/~anthony/graphics/imagick6 moguće je pronaći ogromne resurse za program, iako malo lošije organizirane.

Ivan Capan