Essa é uma revisão anterior do documento!
TerraAPP: Plataforma para aplicações em Áreas de Preservação Permanente
Apresentação teórica e prática de ferramentas desenvolvidas sobre a TerraLib no INPE para aplicações em Áreas de Preservação Permanente. O material pode ser utilizado desde que respeitada a licença:
<html> <a rel=“license” href=“http://creativecommons.org/licenses/by-sa/3.0/deed.en_US”><img alt=“Creative Commons License” style=“border-width:0” src=“http://i.creativecommons.org/l/by-sa/3.0/88x31.png” /></a><br /><span xmlns:dct=“http://purl.org/dc/terms/” href=“http://purl.org/dc/dcmitype/Text” property=“dct:title” rel=“dct:type”>TerraAPP: Plataforma para aplicações em Áreas de Preservação Permanente</span> by <a xmlns:cc=“http://creativecommons.org/ns#” href=“http://wiki.dpi.inpe.br/doku.php?id=elevacao&rev=1375816021” property=“cc:attributionName” rel=“cc:attributionURL”>Laercio M. Namikawa</a> is licensed under a <a rel=“license” href=“http://creativecommons.org/licenses/by-sa/3.0/deed.en_US”>Creative Commons Attribution-ShareAlike 3.0 Unported License</a>. </html>
Programa Legal para Conversão RGB IHS em Imagem RapidEye
// Converte RGB para IHS
// Adapted from Foley, VanDam 2nd.Ed.(p.592)
// given r,g,b on [0 ... 1],
// return (s,l) on [0 ... 1] h [0...360, -1= UNDEFINED]
{
Imagem ir ("CAT_Imagem");
Imagem ig ("CAT_Imagem");
Imagem ib ("CAT_Imagem");
MNT hue ("CAT_MNT");
MNT maxv ("CAT_MNT");
MNT red, green, blue ("CAT_MNT");
MNT iszero, minvl ("CAT_MNT");
MNT dltvl ("CAT_MNT");
MNT hue6 ("CAT_MNT");
MNT sat ("CAT_MNT");
ir = Recupere( Nome = "RapidEye2014_4" );
ig = Recupere( Nome = "RapidEye2014_3" );
ib = Recupere( Nome = "RapidEye2014_5" );
hue = Novo( Nome = "H_435" , ResX = 5 , ResY = 5 , Escala = 10000 );
maxv = Novo( Nome = "V_435" , ResX = 5 , ResY = 5 , Escala = 10000 );
red = New(Name="TMP_HSV_R",ResX=5,ResY=5,Escala=10000);
green = New(Name="TMP_HSV_G",ResX=5,ResY=5,Escala=10000);
blue = New(Name="TMP_HSV_B",ResX=5,ResY=5,Escala=10000);
minvl = New(Name="TMP_MIN",ResX=5,ResY=5,Escala=10000);
dltvl = New(Name="TMP_DLT",ResX=5,ResY=5,Escala=10000);
sat = New(Name="TMP_SAT",ResX=5,ResY=5,Escala=10000);
hue6 = New(Name="TMP_H6",ResX=5,ResY=5,Escala=10000);
//Assume input image range 0-65535, output range 0-1
red = Digital(ir)/65535.;
green = Digital(ig)/65535.;
blue = Digital(ib)/65535.;
// max := Maximum(r,g,b)
maxv = (red >= green ) && (red >= blue ) ? red :
(blue >= green) ? blue : green;
// min := Minimum(r,g,b)
minvl = (red <= green ) && (red <= blue) ? red :
(blue <= green ) ? blue : green;
// if max <> 0 then
// s := (max-min)/max
// else s := 0
dltvl = maxv - minvl;
sat = (maxv == 0.0) ? 0.0 : dltvl/maxv;
// if s = 0 then
// h := UNDEFINED
hue6 = (sat == 0.0) ? 0.0 : (
// else
// begin
// delta := max-min
// if r = max then
// h := (g-b)/delta
(red == maxv) ? 60.0 * ((green - blue) / dltvl) : (
// else if g = max then
// h := 2 + (b-r)/delta
(green == maxv) ? 60.0 * (2.0 + ((blue - red) / dltvl)) : (
// else if b = max then
// h := 4 + (r-g)/delta
60.0 * (4.0 + ((red - green) / dltvl)) )));
// h := h*60
// if h < 0 then
// h := h + 360
hue = (sat == 0.0) ? -1.0 : ((hue6 < 0.0) ? hue6 + 360. : hue6);
}
