Cosa significa il valore della cella in un raster composito?


9

Quando creo un raster composito in QGIS usando lo strumento GRASS r.composite e quindi faccio clic su una determinata cella ottengo questi valori nei raster blu / verde / rosso / composito: blu = 124 verde = 124 rosso = 172 composito = 15861.

So che il blu / verde / rosso rappresentano i valori di luminosità di determinate bande. Cosa rappresenta il 15861 e come viene calcolato?


1
È probabilmente un valore intero che rappresenta il composito alfa: docstore.mik.ua/orelly/java-ent/jfc/ch04_07.htm
WhiteboxDev

1
Quale versione di QGIS e Grass stai usando? Inoltre, si prega di indicare le impostazioni in quanto influiscono sull'operazione (e quindi sul calcolo di r.composite). È interessante notare che costantemente ottengo solo RGB e nessuna banda composita in 2.4.
MappaGnosis,

Sto usando QGIS 2.2 su Windows 7 con la GUI di GRASS 6.4.3. Per le impostazioni, sto usando 32 per il numero di valori per rosso, verde e blu. Il tutorial che sto usando è il corso FOSS4G Academy sul telerilevamento. Il documento del tutorial è disponibile all'indirizzo foss4geo.files.wordpress.com/2014/08/module-3-lab2.pdf .
Jim O'Leary,

2
Si prega di leggere il manuale di r.composite . Se si utilizzano i livelli di intensità "predefiniti" per ciascun componente (ovvero 32), è necessario ottenere valori RGB leggermente diversi rispetto all'RGB "input". Si consiglia di utilizzare r.what con il -rparametro ( Output color values as RRR:GGG:BBB) per eseguire una query sulla combinazione RGB di una cella. Anche per guardare r.what.color . [Collegamenti a GRASS6, poiché questa è la versione utilizzata dall'OP].
Nikos Alexandris,

Risposte:


1

Il numero 124 come byte binario (otto cifre) è 01111100. Per rappresentare una tripla RGB di tre byte richiederebbe tre volte otto, o 24, tali bit. Per impostazione predefinita, r.compositeriduce questo a soli 15 bit scartando i bit meno significativi in ​​ciascuna banda. Pertanto, taglia da 01111100 a 01111, che è 15. (Equivalentemente, divide 124 per 8 e ignora il resto.) Apparentemente questi tre risultati a cinque bit sono concatenati nell'ordine B, G, R per formare un numero a 15 bit (che rappresentano valori compresi tra 0 e 2 ^ 15-1 = 32767, che è abbastanza piccolo da mantenere una tabella dei colori di dimensioni gestibili). Questi valori rappresentano quindi tre bande di immagini, ciascuna con solo cinque bit di precisione anziché le otto originali.

Nell'esempio della domanda, i calcoli procedono in questo modo:

  1. Blu = 124 viene convertito in 124/8 = 15 (più un resto trascurato di 4). In binario questo è 01111.

  2. Il verde = 124 viene convertito in 124/8 = 15 (più un resto trascurato di 4). In binario questo è 01111.

  3. Il rosso = 172 viene convertito in 172/8 = 21 (più un resto trascurato di 4). In binario questo è 10101.

  4. Le cifre sono concatenate in 01111 01111 10101. Questo numero binario di 15 cifre rappresenta il valore 15861 = (15 * 32 + 15) * 32 + 21.

r.composite può fare più elaborazioni di così, e può farlo in modo leggermente diverso a seconda delle opzioni fornite, ma queste operazioni mostrano il modo base in cui un byte può essere convertito in un valore a cinque bit.

Puoi invertire approssimativamente la procedura usando le divisioni successive per 32:

  1. 15861/32 = 495 più un resto di 21. (Moltiplicato per 8, questo resto di 21 dà 168, che è solo un po 'meno dell'originale 172 per la banda rossa.)

  2. 495/32 = 15 più un resto di 15. (Moltiplicato per 8, questo resto di 15 dà 120, che è solo un po 'meno dell'originale 124 per la banda verde.)

  3. Restano 15, che moltiplicati per 8 danno 120, che è solo un po 'meno dell'originale 124 per la banda blu.

Riferimento

r.compositepagina di manuale all'indirizzo https://grass.osgeo.org/grass72/manuals/r.composite.html .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.