Que signifie la valeur de cellule dans un raster composite?

9

Lorsque je crée un raster composite dans QGIS à l'aide de l'outil GRASS r.composite, puis que je clique sur une certaine cellule, j'obtiens ces valeurs dans les rasters bleu / vert / rouge / composite: bleu = 124 vert = 124 rouge = 172 composite = 15861.

Je sais que le bleu / vert / rouge représente les valeurs de luminosité des bandes données. Que représente le 15861 et comment est-il calculé?

Jim O'Leary
la source
1
Il s'agit probablement d'une valeur entière représentant le composite alpha: docstore.mik.ua/orelly/java-ent/jfc/ch04_07.htm
WhiteboxDev
1
Quelle version de QGIS et Grass utilisez-vous? Veuillez également indiquer vos paramètres car ils affectent le fonctionnement (et donc le calcul de r.composite). Fait intéressant, je n'obtiens systématiquement que le RVB et aucune bande composite en 2.4.
MappaGnosis du
J'utilise QGIS 2.2 sur Windows 7 avec l'interface graphique GRASS 6.4.3. Pour les paramètres, j'utilise 32 pour le nombre de valeurs pour le rouge, le vert et le bleu. Le tutoriel que j'utilise est le cours FOSS4G Academy sur la télédétection. Le document du didacticiel se trouve sur foss4geo.files.wordpress.com/2014/08/module-3-lab2.pdf .
Jim O'Leary,
2
Veuillez lire le manuel de r.composite . Si vous utilisez les niveaux d'intensité "par défaut" pour chaque composant (c'est-à-dire 32), vous devriez obtenir des valeurs RVB légèrement différentes par rapport au RVB "d'entrée". Vous pouvez utiliser r.what avec le -rparamètre ( Output color values as RRR:GGG:BBB) pour interroger la combinaison RVB d'une cellule. Aussi regarder r.what.color . [Liens vers GRASS6, car il s'agit de la version utilisée par l'OP].
Nikos Alexandris
1
Vérifiez également ce fil: lists.osgeo.org/pipermail/grass-user/2015-January/071739.html .
Nikos Alexandris

Réponses:

1

Le nombre 124 sous forme d'octet binaire (huit chiffres) est 01111100. Pour représenter un triple RVB de trois octets, il faudrait trois fois huit, ou 24, de tels bits. Par défaut, r.compositeréduit ce nombre à seulement 15 bits en supprimant les bits les moins significatifs de chaque bande. Ainsi, il coupe 01111100 à 01111, ce qui est 15. (De manière équivalente, il divise 124 par 8 et ignore le reste.) Apparemment, ces trois résultats de cinq bits sont concaténés dans l'ordre B, G, R pour former un nombre de 15 bits (représentant des valeurs comprises entre 0 et 2 ^ 15-1 = 32767, ce qui est suffisamment petit pour conserver la table des couleurs à une taille gérable). Ces valeurs représentent donc trois bandes d'images, chacune avec seulement cinq bits de précision plutôt que les huit originaux.

Dans l'exemple de la question, les calculs se déroulent comme suit:

  1. Bleu = 124 est converti en 124/8 = 15 (plus un reste négligé de 4). En binaire, c'est 01111.

  2. Vert = 124 est converti en 124/8 = 15 (plus un reste négligé de 4). En binaire, c'est 01111.

  3. Rouge = 172 est converti en 172/8 = 21 (plus un reste négligé de 4). En binaire, c'est 10101.

  4. Les chiffres sont concaténés en 01111 01111 10101. Ce nombre binaire à 15 chiffres représente la valeur 15861 = (15 * 32 + 15) * 32 + 21.

r.composite peut effectuer plus de traitement que cela, et il peut le faire légèrement différemment selon les options que vous fournissez, mais ces opérations montrent la manière de base de convertir un octet en une valeur de cinq bits.

Vous pouvez approximativement inverser la procédure en utilisant des divisions successives par 32:

  1. 15861/32 = 495 plus un reste de 21. (Multiplié par 8, ce reste de 21 donne 168, ce qui n'est qu'un peu moins que le 172 original pour la bande rouge.)

  2. 495/32 = 15 plus un reste de 15. (Multiplié par 8, ce reste de 15 donne 120, ce qui n'est qu'un peu moins que le 124 d'origine pour la bande verte.)

  3. Nous nous retrouvons avec 15, qui, multiplié par 8, donne 120, ce qui n'est qu'un peu moins que les 124 d'origine pour la bande bleue.

Référence

r.compositepage de manuel sur https://grass.osgeo.org/grass72/manuals/r.composite.html .

whuber
la source