索引图像
索引图像是一种把像素值直接作为RGB调色板下标的图像。索引图像包括一个数据矩阵X,一个调色板矩阵map,也称为颜色映像矩阵。其中,数据矩阵X可以是8位无符号整型、16位无符号整型或双精度类型。调色板矩阵map是一个m×3的数据阵列, 如矩阵元素值域为[0,255],则map矩阵的大小为256×3,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。
索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向调色板矩阵map进行索引,例如,值1指向调色板矩阵map中的第一行,值2指向第二行,以此类推,如某一像素的灰度值为64,则该像素就与调色板矩阵map中的第64行建立了映射关系,该像素在屏幕上的实际颜色由第64行的调色板矩阵map组合决定。
如下图所示索引图像,图(a)索引图像其中红色圈框起来的部位的数据矩阵X,如图(b)所示,调色板矩阵map如图(c)所示,其中一点的索引号为18,在调色板矩阵map中对应第18行所定义的颜色,其RGB颜色实际为(0.1608,0.3529,0.0627),代表RGB三个分量的比重。
示例程序
%彩色图像转索引图像
I = imread('sherlock.jpg'); %读取图片
[X1,map1] = rgb2ind(I,256); %RGB图像转索引图像,图像颜色数量为256种
[X2,map2] = rgb2ind(I,0.2); %RGB图像转索引图像,图像颜色数量为(1/0.2+1)^3种
map3 = colorcube(256); %RGB图像转索引图像,图像颜色数量为指定的256种
X3 = rgb2ind(I,map3);
subplot(2,2,1),imshow(I),title('原始图像');
subplot(2,2,2),imshow(X1,map1),title('最小方差法转换后的索引图像');
subplot(2,2,3),imshow(X2,map2),title('均匀量化法转换后的索引图像');
subplot(2,2,4),imshow(X3,map3),title('颜色近似法转换后的索引图像');
结果图片