图像处理里面调色板(Palette)是什么意思?

图像处理中为了节省表示图像RGB信息的空间用调色板存储彩色信息(RGB值),数据区只存储当前象素的色彩在调色板中的位置,这样就省了很多字节。不过真彩色的图像没有调色板。调色板是颜色的索引,只用于8位图像,16位以上就没有了。

随便的一幅256色BMP的图像
比如调色板区域的内容为:00 00 00 00   00 00 40 00  00 00 80 00   00 00 FF 00
                      00 20 00 00   00 20 40 00  00 20 80 00   00 20 FF 00
                      00 40 00 00   00 40 40 00  00 40 80 00   00 40 FF 00
                          ............................................
                      FF FF 00 00   FF FF 40 00  FF FF 80 00   FF FF FF 00
四个一组共256组调色板数据。
数据区内容为 03 05 0A................................
意思就是第一个象素点的颜色在调色板中的位置是03,也就是R=FF,G=00,B=00;
第二个的R=40,G=20,B=00,以次类推。
调色板的每一组值的最后一位为保留值,同时RGB的顺序是B G R 保留值。

其实很简单,可以举个简单的例子,调试板是指一块区域,一个大的结构数组
数组中每个元素由 RGBQ 构成,R存放红色值,类推,Q是保留位,一般不用。

比如有一副真彩24位图象数据(无调色板) 一组RGB(就是一个象素)总共占3个字节
(R1G1B1) (R2G2B2)(R3G3B3) (R1G1B1)  (R1G1B1)(R1G1B1)(R1G1B1)
 7个象素 有5个颜色重复的象素的,总共21字节=3*7
 
转成8位(256色) 有调色板
就变成了
n0 n1 n2 n0 n0 n0 n0(n1...nX 是一个字节,只存放索引号,对应调色板数组的序号)

-----调色板------
0-----R1G1B1Q
1-----R2G2B2Q
2-----R3G3B3Q
 加起来才19字节,这里19个字节=7+4*3

就是说,每一个索引号是一个字节,一共七个,而其中包括调色板中的3个,每一个是4个字节,因为有Q,所以就像下面所述,根据情况来决定。
重复的象素值越多,越省空间,这就是调色板的作用,但是如果重复的次数不多的话,你看到调色板里有很多Q,这样反而不省空间,不如用24位直接显示了

这里有个疑问,是否第二个举例中,应该是BGRQ,而不是RGBQ

还有个解释说,调色板不是颜色的索引, 只有具有调色板的图像数据才是索引,调色板是结构数组

你可能感兴趣的:(图像处理知识)