复合栅格中的像元值是什么意思?


9

当我使用GRASS r.composite工具在QGIS中制作复合栅格,然后单击某个像元时,我在蓝色/绿色/红色/复合栅格中获得了这些值:蓝色= 124绿色= 124红色= 172复合= 15861。

我知道蓝色/绿色/红色代表给定频段的亮度值。15861代表什么以及如何计算?


1
很可能是代表alpha合成的整数值:docstore.mik.ua/orelly/java-ent/jfc/ch04_07.htm
WhiteboxDev

1
您正在使用哪个版本的QGIS和Grass?另外,请说明您的设置,因为它们会影响操作(并因此影响r.composite的计算)。有趣的是,我一直只得到RGB,而在2.4中没有复合波段。
MappaGnosis

我正在Windows 7上使用GRASS 6.4.3 GUI使用QGIS 2.2。对于设置,我使用32作为红色,绿色和蓝色的值数量。我正在使用的教程是FOSS4G学院遥感课程。教程文档位于foss4geo.files.wordpress.com/2014/08/module-3-lab2.pdf
Jim O'Leary 2014年

2
请阅读r.composite的手册。如果对每个组件使用“默认”强度级别(即32),则与“输入” RGB相比,应获得略有不同的RGB值。您可能要使用带有参数()的r.what来查询单元格的RGB组合。也看r.what.color。[链接到GRASS6,因为这是OP使用的版本]。-rOutput color values as RRR:GGG:BBB
Nikos Alexandris

Answers:


1

作为二进制字节(八位数字)的数字124为01111100。要表示三字节的RGB三倍,将需要三乘八或24个这样的位。默认情况下,r.composite通过丢弃每个频带中的最低有效位将其减少到仅15位。因此,它会将01111100修剪为01111(即15)。(等效地,它将124除以8,然后忽略余数。)显然,这三个5位结果以B,G,R的顺序连接在一起,形成一个15位数字(表示0到2 ^ 15-1 = 32767之间的值,该值足够小,可以将颜色表保持在可管理的大小)。 因此,这些值代表三个图像带,每个图像带仅具有5位精度,而不是原始的8位。

在问题的示例中,计算过程如下:

  1. 蓝色= 124转换为124/8 = 15(加上被忽略的4的余数)。二进制为01111。

  2. 绿色= 124转换为124/8 = 15(加上忽略的余数4)。二进制为01111。

  3. 红色= 172转换为172/8 = 21(加上忽略的4余数)。二进制形式是10101。

  4. 这些数字被链接为01111 0111110101。此15位二进制数字表示值15861 =(15 * 32 + 15)* 32 + 21。

r.composite 可能会做更多的处理,并且可能会有所不同,具体取决于您提供的选项,但是这些操作的确显示了将字节转换为五位值的基本方法。

您可以使用连续除以32 来近似逆转该过程

  1. 15861/32 = 495加上21的余数。(乘以8,此21的余数得到168,仅比红色波段的原始172小一点。)

  2. 495/32 = 15加上15的余数。(乘以8,此15的余数得到120,仅比绿色波段的原始124小一点。)

  3. 我们剩下15,当乘以8时得到120,这仅比蓝带的原始124小一点。

参考

r.composite手册页位于https://grass.osgeo.org/grass72/manuals/r.composite.html

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.