153YZOD Zpracování obrazových dat 2006 - 3. cvičení
Metody zvýrazňování obrazu, histogram, barevné modely, syntézy
osnova
V první části tohoto kurzu budeme pracovat s tzv. histogramem obrazových dat, poté si představíme jednoduchou metodu zvýrazňování obrazu - hustotní řezy. Teoreticky budou popsány i dva modely barev - RGB a IHS, v praktické rovině budeme pracovat s tzv. barevnými syntézami.
seznam použitých příkazů
odrazivost v jednotlivých kanálech LandSat-TM5
V průběhu minulého kurzu jsme si osvojili proces manipulace s tabulkami barev (v odborné literatuře se často používá termín look-up tables - LUT). Pro družicové snímky používáme většinou vyrovnané (ekvalizované) odstíny šedi (grey.eq).
Rastrové buňky jednotlivých kanálů družicové scény obsahují tzv. digitální hodnoty (DH). Tyto hodnoty (již digitálně kódované) reprezentují v rámci daného spektrálního intervalu velikost skenerem zachyceného odraženého záření od zemského povrchu. Družicové snímky obsažené v lokaci sevcech (LandSat-TM5) jsou kódovány jako 8-bitová data (tzn. že mohou obsahovat až 256 různých odstínů - hodnoty v rozsahu [0; 255]). Níže uvedený obrázek ukazuje spektrální rozlišení jednotlivých kanálů družicové scény LandSat-TM5.

První tři kanály tak pokrývají viditelné spektrum, zbylé kanály potom infračervený obor. Šestý kanál je v tepelném spektru - je označován jako panchromatický a od ostatních kanálů se navíc liší i geometrickým rozlišením - 120 m. Na obrázku č.1 je navíc zobrazena křivka odrazivosti pro vodu, zelenou vegetaci a písčitou půdu. V pravé části obrázku je vidět dvoudimenzionální systém vytvořený třetím a čtvrtým kanálem družicové scény LandSat-TM5 (tzv. feature space) s viditelnými shluky pixelů - náznaky jednotlivých tříd.
histogram
Grafické znázornění (v podobě sloupcového grafu) četností jednotlivých DH poskytuje tzv. histogram. Na ose X jsou naneseny jednotlivé DH ([0; 255]), na ose Y pak četnost jejich výskytu. Zobrazíme si tedy zkušebně histogram prvního kanálu družicové scény LandSat-TM5. Otevřeme GRASS monitor a aplikujeme příkaz d.histogram (pokud již máme v GRASS monitoru zobrazena nějaká data, je nanejvýš vhodné, před zobrazením samotného histogramu jeho obsah vymazat - d.erase):
GRASS:~ > d.mon x0 # #zobrazení histogramu # GRASS:~ > d.histogram tm1

Poznámka: Nikoho jistě nepřekvapí, že i tento modul respektuje nastavení aktivního regionu. Pokud nemáme nastaven aktivní region na celý družicový snímek, můžeme dostat například takovýto výsledek:

"
V minulém kurzu jsme tutéž charakteristiku obrazu (tj. četnost DH) vyjádřili číselně, pouze pro osvěžení: vytiskneme celkový počet pixelů pro jednotlivé DH (pomocí systémové aplikace awk omezíme výstup pouze na interval DH [55; 85]). Jako ostřílení uživatelé dozajista víme jak na věc, pouze pro připomenutí:
#vytisknout četnost DH pouze pro interval hodnot [55; 85] # GRASS:~ > r.stats tm1 -c | awk '{if ($1>55 && $1<85) print $1,$2}' r.stats: 100% 56 6 57 84 58 1582 59 9348 60 17800 61 63277 62 113072 63 110607 64 174193 65 220580 66 281778 67 189538 68 156562 69 205687 70 201391 71 140880 72 104717 73 165492 74 196217 75 203551 76 134829 77 129954 78 143600 79 85170 80 59787 81 56945 82 67504 83 62548 84 31241
Na následujícím obrázku jsou zobrazeny histogramy všech kanálů zkoumané družicové scény. V rámci procvičení a zkoumání rozdělení četnosti DH v jednotlivých kanálech si zobrazte postupně histogramy vybraných snímků, např.:
GRASS:~ > d.erase; d.histogram tm2
Technická poznámka: Jak je vidno z výše uvedeného příkazu, na jeden řádek lze uvést hned několik příkazů oddělených středníkem.
metoda hustotních řezů
Jednou ze základních (velmi jednoduchých) metod zvýraznění obrazu je metoda hustotních řezů (ang. density slicing). V podstatě jde pouze o nastavení vhodné tabulky barev - jednotlivým DH jsou přiřazeny dané barevné hodnoty. Interval DH kanálu je rozdělen na tři podintervaly a mezní hodnoty takto vzniklých intervalů přiřazeny třem základním barvám - modré, zelené a červené.
Tuto metodu si demonstrujeme například na prvním kanálu družicové scény, nejprve zjistíme rozsah DH (např. pomocí modulu r.info):
#zjištění intervalu hodnot (pomocí aplikace grep vybereme pouze řádek obsahující slovo "Range") # GRASS:~ > r.info tm1 | grep Range
| Range of data: min = 0 max = 255 |
Tento interval tedy rozdělíme na tři podintervaly s následujícími mezními hodnotami: 85 a 170. Na základě tohoto rozdělení nastavíme příslušnou tabulku barev:
0 255 0 0 85 255 255 0 170 0 255 0 255 0 0 255
Poznámka: Místo RGB trojice můžeme použít názvy standardních barev GRASSu:
0 red 85 yellow 170 green 255 blue
Tuto tabulku můžete zadat ručně, či ji uložit do samostatného textové souboru (línější jedinci daný soubor pouze stáhnou na disk - tb1.txt) a nastavit tímto jednoduchým způsobem:
#nastavení tabulky barev uložené v textovém souboru GRASS:~ > r.colors map=tm1 color=rules < tb1.txt
Zobrazíme-li znovu histogram tohoto snímku, dostaneme stejný sloupcový graf - pouze v odlišném barevném znázornění korespondujícím s nově nastavenou tabulkou barev - viz obr. č.5.

Zobrazíme-li konečně daný snímek v GRASS monitoru, zjistíme, že jeho barevná interpretace není zrovna příliš "šťastná".
GRASS:~ > d.rast map=tm1
Poznámka: Z "výchovných" důvodů jsem tentokrát uvedl úplný název parametru - map. Většinou si z čiré lenosti příkazy zkracuji...

Prostudujeme si blíže histogram snímku - četnosti jednotlivých DH a podle toho pozměníme naší tabulku barev, například takto (tb2.txt):
0 0 0 0 50 255 0 0 80 255 255 0 120 0 255 0 255 0 0 255
Tabulku nastavíme již známým způsobem a snímek (aktuální obsah GRASS monitoru) překreslíme:
GRASS:~ > r.colors map=tm1 color=rules < tb2.txt GRASS:~ > d.redraw

barevné modely RGB a IHS
A teď trochu teorie - popis barevných modelů RGB a IHS. Podobně jako geometrická data má i prostor barev svůj souřadnicový systém. Model RGB má aditivní charakter, kdy ostatní barvy vznikají kombinací tří základních barev (červená, zelená a modrá). Druhý model IHS (HIS) má odlišnou podstatu, intenzita (intensity) odráží jas barvy, odstín (hue) koresponduje s dominantní vlnovou délkou, třetí složkou je potom sytost (saturation) barvy. Na obr. č.8 jsou zobrazeny oba výše zmíněné barevné modely.

Pixel v prostoru barev RGB je tedy dán specifickou polohou uvnitř barevné krychle, podobně v případě modelu IHS uvnitř hexagonu.
GRASS umožňuje snadnou konverzi mezi těmito dvěma modely barev - jde o moduly i.his.rgb. To pouze na okraj, prakticky si je představíme v jednom z následujících kurzů.
barevné syntézy
Nyní si ukážeme praktický postup při zobrazování tzv. barevných syntéz - kompozitních snímků. Takový snímek vznikne přiřazením třech vybraných kanálů scény třem základním barvám modelu RGB - červené, zelené a modré (pracujeme-li s modelem RGB).
Zobrazíme tedy barevnou kompozici v tzv. skutečných barvách (první kanál přiřadíme modré ose, druhý zelené a konečně třetí kanál červené ose RGB krychle). Takto složený snímek zobrazíme dvakrát, v prvním případě nastavíme podkladovým snímkům tabulku barev grey, v druhém případě vhodnější grey.eq. Rozdíl je na první pohled zřetelný - viz obr. č.9 a obr. č.10.
#čert nikdy nespí... # GRASS:~ > g.region tm # #tabulka barev grey # GRASS:~ > r.colors tm1 col=grey GRASS:~ > r.colors tm2 col=grey GRASS:~ > r.colors tm3 col=grey
Jelikož se považujeme za pokročilé uživatele OS GNU/Linux, jsme neskutečně líní a chceme "ohromit" naše blízké okolí, nastavíme tabulku barev pro první tři kanály hromadně(!):
#jak jednoduché a průhledné;-) # GRASS:~ > for map in `g.mlist rast pat=tm*`;do echo r.colors map=$map color=grey;done | head -n3 | sh
A konečně zobrazíme danou barevnou syntézu v GRASS monitoru:
GRASS:~ > d.rgb blue=tm1 green=tm2 red=tm3
frame|center|Obr č.9: Barevná syntéza ve skutečných barvách - tabulka barev grey
Výsledek se nám příliš nelíbí - změníme tedy tabulku barev a kompozitní snímek překreslíme:
#tabulka barev grey.eq # GRASS:~ > r.colors tm1 col=grey.eq GRASS:~ > r.colors tm2 col=grey.eq GRASS:~ > r.colors tm3 col=grey.eq # #stačí překreslit obsah okna # GRASS:~ > d.redraw

Na závěr si vyzkoušíme další kombinace - o nepravých (falešných) barvách hovoříme v případě, kdy složkami výsledné kompozice nejsou kanály z viditelného oboru světla.
Poznámka: Následující tabulka je převzata z dodatku GRASS příručky.
kombinace | popis | |
---|---|---|
123 | ... | barevný snímek ve skutečných barvách - jsou použity první tři kanály pokrývající interval viditelného světla - viz obr. č.10. |
234 | ... | Citlivý na zelenou vegetaci (znázorněno červenou barvou), jehličnaté lesy jsou v tmavější odstínu než listnaté. Silnice a vodní plochy jsou dobře rozeznatelné - viz obr. č.11. |
243 | ... | Zelená vegetace je zelená, ale jehličnany nejsou tak dobře patrné jako na syntéze 234. |
247 | ... | Asi nejlepší kombinace pro určení typu lesa. Dobře použitelné pro mapování těžebních ploch a silnic. |
345 | ... | Obsahuje hlavní obrazové kanály (VIS, NIR, SWIR). Zelená vegetace je znázorněna zeleně, SWIR ukazuje stres na vegetaci, silnice už jsou rozeznatelné hůře. |
347 | ... | Podobně jako kombinace 345, ale hodí se lépe pro zobrazení požářišť. |
354 | ... | Působí jako barevný infračervený obrázek - viz obr. č.12. |
374 | ... | Podobně jako 354. |
457 | ... | Ukazuje půdní druh (jílovitá, hlinitá, písčitá). |

