´ Upravy digit´aln´ıch fotografi´ı a jejich principy Ing. Hana Druckm¨ ullerov´a
[email protected] Ing. Petra Nov´aˇckov´a
[email protected] ´ Ustav matematiky Fakulta strojn´ıho inˇzen´ yrstv´ı Vysok´e uˇcen´ı technick´e v Brnˇe
Zaj´ım´a v´as, co je to vlastnˇe digit´aln´ı obraz? Jak´e operace s n´ım m˚ uˇzeme prov´adˇet? A jak´ ymi postupy jsme dostali z p˚ uvodn´ıho obr´azku pˇet n´asleduj´ıc´ıch? Zaj´ım´a v´as, jak´a matematika se za tˇemito postupy skr´ yv´a? Pak je n´aˇs kurz urˇcen pr´avˇe pro v´as.
Lev´ y spodn´ı obr´azek vznikl pomoc´ı rozmaz´an´ı p˚ uvodn´ıho obrazu konvoluc´ı s vhodn´ ym j´adrem. Co je to konvoluce, se dozv´ıte ve druh´e ˇca´sti naˇseho textu. I prav´ y horn´ı obr´azek vznikl pomoc´ı konvoluce s vhodn´ ym j´adrem. V praktick´e ˇca´sti naˇseho kurzu se dozv´ıte, jak´a j´adra konvoluce se hod´ı k jak´ ym operacem s obrazem. Obr´azky v prostˇredn´ım sloupci vznikly pomoc´ı transformace obrazu pomoc´ı tzv. kˇrivek. Abychom tyto mohli pouˇz´ıt, je dobr´e si nejdˇr´ıv nˇeco ˇr´ıct o histogramech obraz˚ u a transformac´ıch hodnot pixel˚ u z nich vych´azej´ıc´ıch. I o tom je druh´a ˇc´ast naˇseho textu a hlavnˇe pak praktick´a ˇca´st kurzu. V prvn´ı ˇca´sti naˇseho textu se dozv´ıte, co je to vlastnˇe digit´aln´ı obraz a na jak´em principu funguj´ı digit´aln´ı fotoapar´aty. Doˇctete se nˇeco i o ˇc´ıseln´ ych soustav´ach a reprezentaci barev v poˇc´ıtaˇci.
H. Druckm¨ ullerov´a, P. Nov´aˇckov´a
´ Upravy digit´aln´ıch fotografi´ı a jejich principy
Ve v´ yukov´ ych textech se V´am pokus´ıme vysvˇetlit nˇekter´e pojmy a principy, o kter´e se bude op´ırat praktick´a ˇc´ast. Ze zkuˇsenost´ı z minul´ ych letech v´ıme, ˇze se na T-exkurzi hl´as´ı studenti r˚ uzn´ ych roˇcn´ık˚ u a r˚ uzn´ ych typ˚ u ˇskol. M˚ uˇze se proto st´at, ˇze nˇekter´e pas´aˇze budou pro V´as moc tˇeˇzk´e (nebo naopak moc lehk´e). Nenechte se t´ım ale odradit, na praktick´e ˇca´sti se pokus´ıme veˇsker´e nejasnosti vysvˇetlit.
Klasick´ a fotografie Pˇrestoˇze dnes naprostou vˇetˇsinu fotografi´ı poˇrizujeme pomoc´ı digit´aln´ıch fotoapar´at˚ u, mˇeli bychom se zm´ınit i o klasick´e fotografii. Principem klasick´e fotografie jsou chemick´e reakce vyvolan´e ˇr´ızen´ ym osv´ıcen´ım fotografick´eho materi´alu svˇetlem. Fotoapar´at na kr´atk´ y ˇcas otevˇre z´avˇerku a nech´a svˇetlo dopadat na film, ˇc´ımˇz dojde ve filmu k chemick´e reakci, jej´ıˇz intenzita z´avis´ı na intenzitˇe osvˇetlen´ı. Z hlediska praktick´eho pouˇzit´ı i pouˇzit´ ych postup˚ u rozliˇsujeme: • (Dia)pozitivn´ı fotografie. Fotograf poˇr´ıd´ı sn´ımek na film a ten je zpracov´an tak, ˇze na pol´ıˇcku filmu po zpracov´an´ı vid´ıme obraz fotografovan´e sc´eny v pozitivu, tj. tak, jak vypadala. K prohl´ıˇzen´ı v´ ysledku pouˇz´ıv´ame prom´ıtaˇcku, kter´a pol´ıˇcka filmu (um´ıstˇen´a v patˇriˇcn´em r´ameˇcku) prosv´ıt´ı a zvˇetˇseninu prom´ıtne na pl´atno. • Negativn´ı fotografie. Nafotografovan´ y film je zpracov´an tak, ˇze jsou na nˇem sn´ımky v negativu. M´ısto zelen´e je na sn´ımc´ıch r˚ uˇzov´a, pˇresnˇeji purpurov´a, barva, modr´a barva je nahrazen´a svou doplˇ nkovou barvou ˇzlutou a naopak, ˇcerven´a barva je vz´ajemnˇe nahrazen´a s barvou tyrkysovou. V´ ysledkem cel´eho postupu je pap´ırov´a fotografie, kter´a vznikne ve zvˇetˇsovac´ım stroji osv´ıcen´ım fotografick´eho pap´ıru svˇetlem skrz zpracovan´ y film. Oba tyto postupy existuj´ı jak v barevn´em, tak ˇcernob´ıl´em proveden´ı. Negativn´ı barevn´a fotografie byla jeˇstˇe ned´avno nejˇcastˇejˇs´ım postupem pouˇz´ıvan´ ym amat´ery (fotografie z dovolen´ ych atd.). Negativn´ı ˇcernob´ıl´a fotografie se byla dominantn´ı fotografickou technikou velk´e ˇc´asti 20. stolet´ı. V jeho z´avˇeru se z n´ı stala sp´ıˇse technika umˇeleck´e fotografie. Diapozitivy byly pˇred pˇr´ıchodem digit´aln´ı fotografie a dataprojektor˚ u jedinou metodou, jak sn´ımky sd´ılet s vˇetˇs´ım publikem, at’ uˇz se jednalo o sn´ımky odborn´e (sn´ımky tk´an´ı v l´ekaˇrstv´ı, povrchy lomov´ ych ploch v materi´alov´em v´ yzkumu atd.) nebo napˇr´ıklad sn´ımky z horolezeck´ ych expedic.
Digit´ aln´ı fotografie ˇ Cernob´ ıl´ a fotografie Klasick´e fotoapar´aty fotografuj´ı na pol´ıˇcko filmu, kter´e se po poˇr´ızen´ı sn´ımku odvine doboku a na jeho m´ısto se pomoc´ı mechaniky uvnitˇr fotoapar´atu posune pol´ıˇcko nov´e. Digit´aln´ı fotoapar´aty maj´ı na tomto m´ıstˇe ˇcip, obd´eln´ık tvoˇren´ y mili´ony fotodiod citliv´ ych na svˇetlo a dalˇs´ı obsluˇznou elektronikou. Fotodiody se pˇri fotografov´an´ı pouˇz´ıvaj´ı jako poˇc´ıtaˇce foton˚ u“. Poˇcet foton˚ u, kter´e na dan´e m´ısto na ˇcipu dopadnou, popisuje jas ” dan´eho m´ısta na fotografovan´e sc´enˇe. Ve vˇetˇsinˇe typ˚ u digit´aln´ıch fotoapar´at˚ u a kamer jsou fotodiody uspoˇra´d´an´e do ˇra´dk˚ u a sloupc˚ u a hovoˇr´ıme tak o matici sn´ımaˇc˚ u (fotodiod). 2
H. Druckm¨ ullerov´a, P. Nov´aˇckov´a
´ Upravy digit´aln´ıch fotografi´ı a jejich principy
V pˇr´ıpadˇe ˇcernob´ıl´ ych kamer proto poˇr´ızen´ım jednoho sn´ımku z´ısk´ame matici ˇc´ısel popiˇ suj´ıc´ıch, kolik foton˚ u na ten kter´ y sn´ımaˇc dopadlo. Cernob´ ıl´ y obraz tedy nen´ı nic jin´eho neˇz matice a0,0 a0,1 a0,2 . . . a0,w−1 a1,0 a1,1 a2,2 . . . a1,w−1 , A= .. .. .. .. . . . . ah−1,0 ah−1,1 ah−1,2 . . .
ah−1,w−1
kde h je v´ yˇska obrazu a w jeho ˇs´ıˇrka. Zde je nutno poznamenat, ˇze v line´arn´ı algebˇre se standardnˇe prvky matic ˇc´ısluj´ı od 1, zat´ımco program´atoˇri r´adi ˇc´ısluj´ı matice (v ˇreˇci programovac´ıch jazyk˚ u dvourozmˇern´a pole) od nuly. Zpracov´an´ı obraz˚ u se prov´ad´ı na poˇc´ıtaˇc´ıch v nejr˚ uznˇejˇs´ıch programech, proto se budeme drˇzet program´atorsk´e konvence. Nejˇcastˇeji se pouˇz´ıvaj´ı obrazy 8-bitov´e s hodnotami pixel˚ u 0, 1, 2, . . . , 255 (255 = 28 −1) a 16 16 bitov´e s hodnotami 0, 1, 2, . . . , 65 535 (65 535 = 2 − 1). Proˇc se pouˇz´ıvaj´ı zrovna tyto ˇ ıseln´e soustavy, resp. v jej´ım odstavci Reprezentace cel´ hodnoty, se doˇctete v ˇca´sti C´ ych ˇc´ısel v poˇc´ıtaˇci.
Barevn´ a fotografie V ˇcernob´ıl´em obraze jsme znali pro kaˇzdou dvojici souˇradnic [x, y] hodnotu ax,y . M´ame-li obraz barevn´ y, zn´ame v kaˇzd´em jeho bodˇe barvu reprezentovanou ˇcervenou, modrou a sloˇzkou. Barevn´ y obraz je tedy pops´an tˇremi maticemi R, G, B popisuj´ıc´ımi barevn´e sloˇzky obrazu jako tˇri ˇcernob´ıl´e obrazy. Bod o souˇradnic´ıch [x, y] pro x ∈ {0, 1, . . . w − 1}, y ∈ {0, 1, . . . h − 1} budeme naz´ yvat pixel. Trojici ˇc´ısel, prvk˚ u matic R, G, B, (rx,y , gx,y , bx,y ) budeme naz´ yvat hodnotou tohoto pixelu, jednotliv´a ˇc´ısla rx,y , gx,y , bx,y hodnotami jeho sloˇzek. V pˇr´ıpadˇe ˇcernob´ıl´eho obrazu je hodnotou pixelu v konkr´etn´ım bodˇe jedin´e ˇc´ıslo ax,y . Fotodioda je v principu citliv´a ve velk´e ˇca´sti spektra, nejen ve viditeln´e, ale v infraˇcerven´e ˇc´asti spektra. Existuj´ı dva pˇr´ıstupy, jak poˇr´ıdit barevnou digit´aln´ı fotografii. Foveon Technologie, kter´a umoˇzn ˇuje v kaˇzd´em pixelu z´ıskat informace o vˇsech barven´ ych sloˇzk´ach pixelu. Fotoapar´aty vybaven´e touto technologi´ı jsou relativnˇe drah´e, ale vyznaˇcuj´ı se velmi vysokou kvalitou obrazu. V souˇcasn´e dobˇe je pouˇz´ıv´a u ´zk´ y okruh movitˇejˇs´ıch nadˇsenc˚ ua profesion´aln´ıch fotograf˚ u. Barevn´ a digit´ aln´ı fotografie zaloˇ zen´ a na Bayerovˇ e masce Mnohem ˇcastˇejˇs´ım pˇr´ıstupem, kter´ y vyuˇz´ıv´a naprost´a vˇetˇsina dneˇsn´ıch digit´aln´ıch fotoapar´at˚ u, je technologie zaloˇzen´a na tzv. Bayerovˇe masce. Uvnitˇr fotoapar´atu se nach´az´ı pˇred kaˇzdou fotodiodou mikroˇcoˇcka, kter´a soustˇred’uje svˇetlo dopadaj´ıc´ı na ni, na fotodiodu. Mezi mikroˇcoˇckou a fotodiodou se v nach´az´ı barevn´e filtry, kter´e jsou pravidelnˇe uspoˇr´ad´an´e tak, ˇze jedna polovina filtr˚ u je zelen´ ych, jedna ˇctvrtina modr´ ych a jedna ˇctvrtina ˇcerven´ ych. Tento pomˇer je zvolen proto, ˇze lidsk´ y zrak je nejcitlivˇejˇs´ı v zelen´e ˇca´sti spektra, proto je vhodn´e, aby zelen´a sloˇzka obrazu mˇela ze vˇsech barevn´ ych sloˇzek nejvyˇsˇs´ı kvalitu. Maska tvoˇren´a barevn´ ymi filtry nad sn´ımaˇci se naz´ yv´a Bayerova maska. T´ımto zp˚ usobem kaˇzd´ y sn´ımaˇc poskytuje informace jen o jedn´e barevn´e sloˇzce pixelu. 3
H. Druckm¨ ullerov´a, P. Nov´aˇckov´a
´ Upravy digit´aln´ıch fotografi´ı a jejich principy
Informace o ostatn´ıch sloˇzk´ach pixelu z´ısk´av´ame zpr˚ umˇerov´an´ım hodnot dan´e sloˇzky ze sousedn´ıch pixel˚ u. Sch´ema ˇcipu s Bayerovou maskou najdete na obr´azku 1.
(a) Zdroj [1].
(b) Zdroj [2].
ˇ je v principu ˇcernob´ıl´ Obr´azek 1: Sch´ema ˇcipu s Bayerovou maskou. Cip y, jen barevn´e filtry rozhoduj´ı, kter´e sn´ımaˇce dostanou informace o ˇcerven´e sloˇzce obrazu, kter´e o zelen´e a kter´e o modr´e.
ˇ ıseln´ C´ e soustavy Vˇsichni jsme zvykl´ı poˇc´ıtat v des´ıtkov´e soustavˇe. V digit´aln´ı technice je ale vˇse ud´av´ano ve dvojkov´e soustavˇe (nuly a jedniˇcky, resp. napˇet´ı nebo proud je, ˇci nen´ı) a v soustav´ach z n´ı odvozen´ ych, zvl´aˇstˇe ˇsestn´actkov´e. Neˇz se na nˇe pod´ıv´ame, rozeberme si, co vlastnˇe znamen´a z´apis ˇc´ısla v des´ıtkov´e soustavˇe. Napˇr. z´apis 14 358 znamen´a 1 · 104 + 4 · 103 + 3 · 102 + 5 · 101 + 8 · 100 . Na v´ ybˇer m´ame celkem deset ˇc´ıslic, 0 aˇz 9, kter´e m˚ uˇzeme pˇred mocninu des´ıtky um´ıstit. Jako z´aklad m˚ uˇzeme m´ısto des´ıtky pouˇz´ıt jak´ekoli pˇrirozen´e ˇc´ıslo vyˇsˇs´ı neˇz jedna a budeme pak m´ıt k dispozici stejn´ y poˇcet ˇc´ıslic. Kdyˇz bychom pouˇzili jedniˇcku, staˇc´ı n´am ˇc´ıslice jedin´a, tˇreba punt´ık“ a poˇc´ıtali bychom jako v dobˇe kamenn´e. M´ısto ˇc´ısla 5 bychom ” napsali • • • • •. Jak by se sˇc´ıtalo, je evidentn´ı, i n´asoben´ı je provediteln´e, prostˇe dopln´ıme na obd´eln´ık“ ” a ˇra´dky obd´eln´ıku se naskl´adaj´ı za sebe. Napˇr´ıklad vyn´asoben´ı • • • • • a • • • se provede ••••• • • • • • → • • • • • • • • • • • • • • •. ••••• Pˇrejdˇeme ale k nˇeˇcemu uˇziteˇcnˇejˇs´ımu. Soustava dvojkov´a znamen´a, ˇze m´ame k disˇ ıslo 20 v des´ıtkov´e soustavˇe zap´ıˇseme ve dvojkov´e jako 10100, pozici dvˇe ˇc´ıslice, 0 a 1. C´ protoˇze 20 = 1 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 0 · 100 . 4
H. Druckm¨ ullerov´a, P. Nov´aˇckov´a
´ Upravy digit´aln´ıch fotografi´ı a jejich principy
Sˇc´ıt´an´ı je celkem intuitivn´ı, sˇc´ıt´ame-li 1 a 1 na stejn´e pozici, pˇren´aˇs´ıme 1 o jedno doleva, napˇr´ıklad 1 0 1 1 0 1 1 1 0 0 1 1 0 0 0 1 1 0. N´asoben´ı ve dvojkov´e soustavˇe je jeˇstˇe jednoduˇsˇs´ı, n´asob´ıme pod sebou“ jako v des´ıtkov´e ” soustavˇe, n´asoben´ı jedniˇckou znamen´a ops´an´ı ˇr´adku, n´asoben´ı nulou samozˇrejmˇe naps´an´ı nuly a posunut´ı se k dalˇs´ımu kroku. Pak zb´ yv´a jen ˇra´dky seˇc´ıst. Ukaˇzme si to na n´asleduj´ıc´ım pˇr´ıkladu: 1 1 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 0 1 1 1 1 1 0 1. Pod´ıvejme se jeˇstˇe na ˇsestn´actkovou soustavu. V t´e n´am bˇeˇzn´ ych deset ˇc´ıslic 0 aˇz 9 nestaˇc´ı, a tak pˇrid´av´ame ˇc´ıslice A aˇz F. Pouˇzijeme-li ( )10 pro vyznaˇcen´ı, ˇze ˇc´ıslo je v des´ıtkov´e soustavˇe a ( )16 , ˇze ˇc´ıslo je zapsan´e v ˇsestn´ackov´e soustavˇe, plat´ı (A)16 = (11)10 , (B)16 = (12)10 , . . . , (F )16 = (15)10 . ˇ ıslo F17 v ˇsest´actov´e soustavˇe je 3863 v des´ıtkov´e, protoˇze C´ 3863 = 15 · 162 + 1 · 21 + 7 · 20 . Sˇc´ıt´an´ı v ˇsest´actov´e soustavˇe prov´ad´ıme analogicky jako v des´ıtkov´e, jen si mus´ıme uvˇedomit, ˇze napˇr´ıklad 9 + 3 = B a 9 + 9 = 12. N´asoben´ı je sloˇzitˇejˇs´ı o to, ˇze se mus´ıme znovu nauˇcit malou n´asobilku“, mus´ıme si vytvoˇrit tabulku n´asobk˚ u vˇsech jednocifern´ ych ˇc´ısel ” tak, jak jsme se to zpamˇeti uˇcili ve druh´e tˇr´ıdˇe.
Reprezentace cel´ ych ˇ c´ısel v poˇ c´ıtaˇ ci V poˇc´ıtaˇci se pouˇz´ıvaj´ı datov´e typy r˚ uzn´e velikosti v pamˇeti. Zde si to pop´ıˇseme v n´azvoslov´ı, kter´e pouˇz´ıv´a programovac´ı jazyk Pascal. V jin´ ych jazyc´ıch je princip stejn´ y, jen se mohou typy jinak jmenovat. Kdyˇz se omez´ıme na pˇrirozen´a ˇc´ısla, nejmenˇs´ı datov´ y typ je boolean. Je to jednobitov´a hodnota, jednocifern´e ˇc´ıslo ve dvojkov´e soustavˇe. Nule se ˇr´ık´a false a jedniˇcce true. N´asoben´ı ve dvojkov´e soustavˇe je ekvivalentn´ı logick´e spojce and. Datov´ y typ byte je jednobytov´ y, tj. osmibitov´ y a umoˇzn ˇuje uloˇzit aˇz osmicifern´e ˇc´ıslo ve dvojkov´e soustavˇe, maximum je tedy (11111111)2 = (255)10 . Z´arovˇen ˇ ale (255)10 = 2 (16 − 1)10 = (FF)16 . Kaˇzd´e jednocifern´e ˇc´ıslo v ˇsestn´actkov´e soustavˇe se d´a totiˇz vyj´adˇrit jako ˇctyˇrcifern´e ˇc´ıslo ve dvojkov´e soustavˇe. Protoˇze 16 = 24 , postaˇc´ı n´am pro popis jak´ehokoli ˇc´ısla od 0 do 15 ˇctyˇri cifry pro oznaˇcen´ı n´asobku mocnin dvojky 23 , 22 , 21 a 20 . To znamen´a, ˇze kaˇzd´e ˇc´ıslo od 0 do 255 se d´a vyj´adˇrit pomoc´ı aˇz osmi cifer ve dvojkov´e soustavˇe nebo pomoc´ı aˇz dvou cifer v ˇsestn´actkov´e soustavˇe. Pokud pomoc´ı datov´eho form´atu byte popisujeme pixel barevn´eho obrazu, popisujeme kaˇzdou jeho sloˇzku ˇc´ıslem typu byte. T´ımto ˇc´ıslem m˚ uˇze b´ yt v des´ıtkov´e soustavˇe jak´ekoli ˇc´ıslo 0, 1, . . . , 255, tedy v ˇsestn´actkov´e 0, 1, . . . , FF. Protoˇze kaˇzd´e takov´e ˇc´ıslo je reprezentovan´e dvˇema ˇc´ıslicemi 5
H. Druckm¨ ullerov´a, P. Nov´aˇckov´a
´ Upravy digit´aln´ıch fotografi´ı a jejich principy
v ˇsestn´ackov´e soustavˇe, m˚ uˇzeme je d´at za sebe a utvoˇrit tak ˇsesticifern´e ˇc´ıslo. Pokud bychom ho vyj´adˇrili v des´ıtkov´e soustavˇe, je jeho interpretace problematick´a, protoˇze se ned´a snado rozsekat“ na ˇc´asti popisuj´ıc´ı jednotliv´e barevn´e sloˇzky. V ˇsestn´actkov´e sou” stavˇe je toto rozsek´an´ı trivi´aln´ı. Standardnˇe se zapisuj´ı sloˇzky v poˇrad´ı RGB, tj. ˇcerven´a, zelen´a, modr´a. Proto napˇr. FFFFFF znamen´a barevnˇe zapsanou“ b´ılou barvu, 0000FF ” je nejsvˇetlejˇs´ı moˇzn´a modr´a barva, FF00FF je smˇes ˇcerven´e a modr´e barvy v aditivn´ım syst´emu m´ıch´an´ı barev, coˇz d´av´a barvu purpurovou (podobnou r˚ uˇzov´e). Napˇr´ıklad barva CA9910 je hnˇedookrov´a barva, ve kter´e je jen m´alo modr´e a v´ıce ˇcerven´e neˇz zelen´e. R˚ uzn´e barvy si m˚ uˇzete vyzkouˇset v libovoln´em grafick´em editoru, napˇr. GIMPu, kdyˇz nastavujete barvu pro nˇejak´ y kreslic´ı prvek. T´eto notaci tam ˇcasto ˇr´ıkaj´ı notace pro HTML, protoˇze v tomto tvaru se barvy ud´avaj´ı ve zdrojov´ ych k´odech webov´ ych str´anek. Dalˇs´ı ˇcasto pouˇz´ıvan´ y datov´ y typ je word, ˇsestn´actibitov´ y celoˇc´ıseln´ y typ. Hodnoty jednotliv´ ych barevn´ ych sloˇzek mohou b´ yt 0 aˇz 65 535 v des´ıtkov´e soustavˇe, neboli 0 aˇz FFFF v ˇsestn´actkov´e soustavˇe. Barva je pak vyj´adˇrena posloupnost´ı tˇr´ı ˇctyˇrcifern´ ych ˇc´ısel v ˇsestn´actkov´e soustavˇe.
Reference [1] http://en.wikipedia.org/wiki/File:Bayer_pattern_on_sensor.svg ke dni 10. 10. 2011 [2] http://www.dpbestflow.org/camera/sensor ke dni 16. 10. 2011
6