图像处理基础---RGB图 灰度图 索引图 调色板

(1)二进制图

在二进制图中,像素的取值为两个离散数值0或1中的一个,0代表黑色,1代表白色

 

 A=[0 0 1;1 1 0; 0 0 1];
>> imshow(A,'InitialMagnification','fit')          %调整合适的窗口显示A。

 

 

(2)索引图

索引图像包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在MATLAB中,索引图像是从像素值到颜色映射表值的“直接映射”。像素颜色由数据矩阵X作为索引指向矩阵Map进行索引,例如,值1指向矩阵Map中的第一行,值2指向第二行,以此类推。

索引图像的作用就是体积小,方便传输,只需要把索引表传输过去,接收方用对应的RGB颜色表还原就行。

 

 

(3)灰度图

灰度图通常由一个unit8、unit16、单精度类型或者双精度类型的数组描述,其实质是一个数据矩阵I,该矩阵中的数据均代表了一定范围内的灰度级,每一个元素与图像的一个像素点相对应,通常0代表黑色,1、255或65635(为数据矩阵的取值范围上限)代表白色。

 

(4)RGB图

RGB图像又称为真彩图像,它使用R、G、B 3个分量标识一个像素的颜色,R、G、B分别代表红、绿、蓝3种不同的基础颜色,通过3基色可以合成出任意颜色。所以对一个尺寸nxm的彩色图像来说,MATLAB中则存储为一个nxmx3 的多维数据数组,其中数组中的元素定义了图像中每一个像素的红、绿、蓝颜色值。图形文件格式把RGB图像存储为24位的图像,红、绿、蓝分量分别占用8位,因而理论上可以有2^24种颜色。

 

 1 clear;clc;
 2 A=imread('D:\mycode\matlab-test\0.jpg');
 3 subplot(2,2,1);
 4 imshow(A);
 5 title('原图');
 6 
 7 %RGB图转化为灰度图
 8 l=rgb2gray(A);
 9 subplot(2,2,2);
10 imshow(l);
11 title('灰度图');
12 
13 %灰度图转化为索引图
14 [X,map]=gray2ind(l);
15 subplot(2,2,3);
16 imshow(X);
17 title('灰度图转化为索引图的X矩阵');
18 
19 %灰度图转化为索引图的X矩阵
20 subplot(2,2,4);
21 imshow(map);
22 title('灰度图转化为索引图的调色板图map');

 

 

 1 %---------------------------------------------------
 2 
 3 clear;clc;
 4 B=imread('D:\mycode\matlab-test\1.jpg');
 5 subplot(2,2,1);
 6 imshow(B);
 7 title('原图');
 8 
 9 %RGB图转化为索引图
10 [X,map]=rgb2ind(B,256);
11 subplot(2,2,2);
12 imshow(X);
13 title('RGB图转化为索引图中的X矩阵');
14 
15 %索引图转化为索引图的X矩阵
16 subplot(2,2,3);
17 imshow(map);
18 title('RGB图转化为索引图中的调色板map');
19 
20 %索引图转化为灰度图
21 l=ind2gray(X,map);
22 subplot(2,2,4);
23 imshow(l);
24 title('索引图转化为灰度图');

posted @ 2017-12-19 12:25  wydxry  阅读(8389)  评论(0编辑  收藏  举报
Live2D