LThhVopG 发表于 2018-8-20 09:26:29

MATLAB图像类型

MATLAB中图像类型分为4类:二进制图、灰度图、索引图(伪彩色)和RGB图(真彩色)。

(1)二进制图

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

(2)灰度图

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

(3)索引图

索引图(又称伪彩色图)包括像素值矩阵和调色板矩阵两部分,其将像素值直接作为调色板下标。其中像素值可以是unit8、unit16或双精度类型的,调色板矩阵map是一个m×3的矩阵,其元素的值在之间,各行分别标识红色、绿色和蓝色部分的颜色深度。

索引图将像素值直接映射为调色板数据。调色板矩阵通常与索引图像存储在一起,当装载图像时,MATLAB自动将调色板矩阵与图像同时装载。

像素值矩阵与调色板矩阵之间的关系依赖于图像数据矩阵的类型。如果图像数据矩阵是单精度类型或双精度类型,则数据值1指向map矩阵中的第一行,数据值2指向map中的第二行,依次类推;如果像素值矩阵是unit8或unit16类型时,数据0标识矩阵map中的第一行,数据1将指向map中的第二行,依次类推;在如图18.6所示的图像中,像素值矩阵用的是双精度类型,数值5指向颜色映射表中的第5行。

(4)RGB图

RGB图(又称真彩色图)使用R、G、B三个分量标识一个像素的颜色,R、G、B分别代表红、绿、蓝3种不同的基础颜色,通过三基色可以合成任意颜色。所以对一个尺寸为n×m的彩色图像来说,在MATLAB中则会存储一个n×m×3的多维数据数组,其中数组中的元素定义了图像中每一个像素的红、绿、蓝颜色值。

RGB图像不使用调色板,每一个像素的颜色由存储在相应位置的红、绿、蓝颜色分量的组合来确定;图形文件格式把RGB图像存储为24位的图像时,红、绿、蓝分量分别占用8位,图像理论上可以有224 种颜色;因为这种颜色精度能够再现图像的真实色彩,所以RGB图像又被称为真彩图像。

例18-2,查看不同调色板的数据单独作用时的颜色变化情况。

在命令行窗口输入:

<p>RGB=reshape(ones(64,1)*reshape(jet(64),1,192),);</p><p>R=RGB(:,:,1);</p><p>G=RGB(:,:,2);</p><p>B=RGB(:,:,3);</p><p>subplot(141);imshow(R);title('Red') %调色板红色数据</p><p>subplot(142);imshow(G);title('Green') %调色板绿色数据</p><p>subplot(143);imshow(B);title('Blue') %调色板蓝色数据</p><p>subplot(144);imshow(RGB);title('RGB') %调色板RGB数据</p>

页: [1]
查看完整版本: MATLAB图像类型