153YZOD Zpracování obrazových dat 2006 - 8. cvičení: Porovnání verzí

Z GeoWikiCZ
Řádek 32: Řádek 32:


  GRASS > g.region rast=tm1
  GRASS > g.region rast=tm1
#
  #transformace hlavních komponent v GRASSu
  #transformace hlavních komponent v GRASSu
  #
  #

Verze z 18. 12. 2005, 09:45

Metoda hlavních komponent, transformace RGB - IHS

< Zpracování obrazových dat

osnona

Nejprve se seznámíme s metodou hlavních komponent a její aplikací v GRASSu. Dále bude předvedena metoda zvýšení geometrického rozlišení pomocí transformace RGB - IHSBrovey transformace.

seznam příkazů

metoda hlavních a obecných komponent

Multispekrální obrazové kanály velmi často obsahují korelace a to díky podobné spekrální odezvě sledovaných objektů nebo mírně se překrývající funkci filtru spekrálního skeneru. Metoda hlavních komponent (Principal Component Transformation) provede transformaci těchto dat do nového spekrálního prostoru bez korelací mezi jednotlivými kanály. To ve svém důsledku vede ke koncentraci obrazové informace do menšího počtu kanálů.

Metoda je založena, jak ukazuje obr. č.1 a 2, na transformaci původního multispekrálního datasetu do nového spekrálního souřadnicového systému.

Obr. č.1: Redukce dat příznakového prostoru dvou kanálů satelitního snímku, amplituda A se redukuje na A' - převzato z GRASS příručky
Obr. č.2: Zobrazení bodových dat jako standardizovaných datových vektorů x1x5 s prvními dvěma přidruženými ortogonálními komponentami - vektory PCA1PCA2 v polárním zobrazení (vlevo) a bodová data v kartézském souřadnicovém systému (vpravo) - převzato z GRASS příručky

První kanál po transformaci (označme jej PC1) obsahuje maximální stupeň možné variance původních obrazových vrstev. Druhý kanál (PC2) pokrývá maximální varianci, která není obsažena v prvním kanálu. Další PC kanály obsahují zbytkové variance. Přičemž počet PC kanálů odpovídá počtu vstupních pásem. Poslední PC kanály nicméně obsahují pouze nekorelovaný šum. Tuto metodu tak lze použít pro zmenšení nároku na úložný prostor, obrazová informace je koncentrována v menším počtu kanálů.

Metoda hlavních komponent je v GRASSu dostupná pomocí modulu i.pca. Modul vyžaduje seznam vstupních obrazových vrstev (nejméně dvě), prefix pro výstupní kanály, volitelně je možné provést změnu rozsahu DH (parametr rescale).

GRASS > g.region rast=tm1
#
#transformace hlavních komponent v GRASSu
#
GRASS > i.pca in=tm1,tm2,tm3,tm4,tm5,tm7 out=pc

Před dalším zpracováním nastavíme tabulku barev (hromadně pro všechny PC kanály):

#hromadné nastavení tabulky barev pro kanály PC
#
GRASS > for pc in `g.mlist pat=pc*`;do \
r.colors map=$pc color=grey.eq;\
done
Obr. č.3: Přehled PC kanálů

transformace RGB - IHS

Nyní se vrátíme k modelům barev popsaných v jednom z předchozích kurzů. Předvedeme si transformaci mezi modelem barev RGB a IHS s důrazem na praktické využití této operace - zvýšení geometrického rozlišení prvních tří pásem LandSat7-ETM+. Předpokládejme, že máme k dispozici družicové snímky (LandSat5-TM či LandSat7-ETM+) pořízené v úzkém časovém horizontu (tak abychom mohli zanedbat změny, které za tento časový interval nastaly).

Postup při této transformaci naznačuje obr. č. 4, nejprve jsou transformovány první tři pásma LandSat7-ETM+ z prostoru barev RGB do IHS. Poté je nahrazen kanál intenzity kanálem o vysokém geometrickém rozlišení a následně tento celek transformován zpět do prostoru barev RGB. Ve výsledku získáme data s vyšším geometrickým rozlišením než ta co byla na vstupu.

Obr č.4: Postup při zvýšení geometrického rozlišení prvních tří pásem LandSat7-ETM+ metodou transformace RGB → IHS → RGB
#nastavit region podle vrstvy etm1, aktuální region vypsat do konzole
#
GRASS > g.region rast=etm1 -p


projection: 99 (krovak)
zone:       0
datum:      towgs84=570.8,85.7,462.8,4.998,1.587,5.261,3.56
ellipsoid:  bessel
north:      -957500
south:      -1007318
west:       -830529
east:       -763855.0602047
nsres:      29.99277544
ewres:      29.99277544
rows:       1661
cols:       2223

Pokud není nastavena tabulka barev "grey.eq", učiníme tak nyní:

#nastavit tabulku barev "grey.eq" pro první tři pásma LandSat7-ETM+
#
GRASS > r.colors color=grey.eq map=etm1
GRASS > r.colors color=grey.eq map=etm2
GRASS > r.colors color=grey.eq map=etm3

Následně je provedena transformace RGB → IHS a to pomocí modulu i.rgb.ihs. Před vlastní transformací je nutné nastavit požadované rozlišení (v tomto případě 15 m).

#nastavení požadovaného rozlišení, aktuální region vypsat do konzole
#
GRASS > g.region res=15 -p

projection: 99 (krovak)
zone:       0
datum:      towgs84=570.8,85.7,462.8,4.998,1.587,5.261,3.56
ellipsoid:  bessel
north:      -957500
south:      -1007318
west:       -830529
east:       -763855.0602047
nsres:      15.00090334
ewres:      14.99976148
rows:       3321
cols:       4445
#transformace RGB -> IHS
#
GRASS > i.rgb.his red_input=etm3 green_input=etm2 blue_input=etm1 \
hue_output=hue intensity_output=int saturation_output=sat

Takto vytvořené obrazové vrstvy (model barev IHS) zpětně převedeme do prostoru barev RGB. K tomu nám poslouží modul i.his.rgb.

#transformace IHS -> RGB
#
GRASS > i.his.rgb hue_input=hue intensity_input=etm8 saturation_input=sat \
red_output=tm3_15 green_output=tm2_15 blue_output=tm1_15

Ve výsledku můžeme nastavit tabulku barev na "grey.eq" a zobrazit barevnou syntézu ve skutečných barvách:

#nastavit tabulku barev na "grey.eq"
#
GRASS > r.colors col=grey.eq map=tm1_15
GRASS > r.colors col=grey.eq map=tm2_15
GRASS > r.colors col=grey.eq map=tm3_15
#
#RGB syntéza ve skutečných barvách (321)
#
GRASS > d.rgb r=tm3_15 g=tm2_15 b=tm1_15
Obr č.5: Detail scény, RGB syntéza ve skutečných barvách (321); vlevo originální data, vpravo po transformaci RGB → IHS → RGB

Brovey transformace

Aplikace této transformace je v GRASSu poměrně jednoduchá (rovnice pro r.mapcalc):

#nastavit region na požadované rozlišení
#
GRASS > g.region rast=tm1 res=15
#
#Brovey transformace
#
GRASS > r.mapcalc 'brov.red   = 1.0 * etm5 / (etm2 + etm4 + etm5) * etm8'
GRASS > r.mapcalc 'brov.green = 1.0 * etm4 / (etm2 + etm4 + etm5) * etm8'
GRASS > r.mapcalc 'brov.blue  = 1.0 * etm2 / (etm2 + etm4 + etm5) * etm8'
#
#tabulka barev "grey"
#
GRASS > r.colors col=grey map=brov.red
GRASS > r.colors col=grey map=brov.green
GRASS > r.colors col=grey map=brov.blue
#
#RGB syntéza ve skutečných barvách
#
GRASS > d.rgb r=brov.red g=brov.green b=brov.blue
Obr č.6: RGB syntéza ve skutečných barvách (321) - data po Brovey transformaci