数字图像处理2-真彩色,灰度图像,索引色图像等的相互转化

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

timg 真彩色timg1 灰度图像

timg2 索引色图像(64色)timg3 二值图像(阈值为0.5)

这里从网上找到了timg真彩色图像作为本次作业中进行数字处理的图像。首先在ps中调整了图像模式,并进行了另存为,生成了timg1与timg2,又在MATLAB中将灰度图像转化为了二值图像

timg3,其中阈值为0.5。这一步操作的代码如下:

A = imread('timg1.jpg');

B = im2bw(A, 0.5);

imshow(B)

imwrite(B,'timg3.jpg');

随后我们来对每个图像imread的返回值进行观察。对于timg处理的程序如下:

A = imread('timg.jpg');

disp(A);

whos A

imshow(A)

由于disp显示数据过多,这里不放原始数据了。其具体内容为3个数组,每个数组都是320*200的,分别代表图片中每个像素的rgb值。而whos语句显示出的内容如下:

Bytes Class Name Size

192000 uint8

A 200x320x3

其中200*320*3说明图像像素为200*320而且为rgb格式,有3

个矩阵。192000为图片大小,而其rgb值是用unit8即8位无符号整数存储,0-255的值代表了某一点像素某一颜色分量的强度。

同理,若将上述程序中的timg改为timg1灰度图像,显示出来的矩阵则只有一个,大小仍为200*320但是每个点的数值则代表对应像素的灰度值。whos语句显示出的内容如下:

Name Size

Bytes Class

64000 u int8

A 200x320

由于灰度图像只需要存储灰度而不是rgb3个分量,其大小便没有最后的*3,因此其大小也只为timg的1/3。

对于索引图进行的操作与其他图像不同,由于其本身存储的是索引值,需要导入索引表才能还原原本的图像,因此程序如下:[IM, map] = imread('timg2.png','png');

disp(IM);

IMrgb(:,:,:) = ind2rgb(IM,map);

whos IMrgb

imshow(IMrgb)

这里如果直接imshow原本图像的话会根据灰度图像的方式显示错误的图像,因此采用了一个ind2rgb函数通过之前导入的索引表和索引值矩阵将图像恢复为rgb图像矩阵。这里的whos函数显示出的结果如下:

Bytes Class Name Size

IMrgb 200x320x3 1536000 double

由于是通过索引表恢复了真彩色的图像,经过了MATLAB的数字处

理,其存储方式从unit8变成了double这一MATLAB的默认数

字格式。而因为其现在为rgb格式的图像,矩阵大小就变成了

200*320*3,而由于存储的数字为double格式,一位占8字节,

故总大小为200*320*3*8=1536000。

随后用于之前相同的方式读入二值图像,发现其读入该图像数据为灰

度格式,因此我们直接在将灰度图像转化为二值图像的代码后面添

加如下两个语句以确保其准确性:

disp(B);

whos B

其disp显示的320*200矩阵中每个像素的值或者为1或者为

0,1就是为白色的地方而0就是为黑色的地方。而whos语句显示

出的图像信息如下:

Bytes Class

Name Size

64000 logical B 200x320

这里的其他地方同之前灰度图像的道理一样,此处便不再附加说

明,而这个数字类型logical为MATLAB中的逻辑型,0就是

false而1就是true,每个logical类型数据占1字节,故文

件大小仍为64000字节。

在此之后我们来尝试对于更换索引图像的索引表会对图像产生什么

影响。其基本代码如下:

IM = imread('timg2.png');

disp(IM);

IMrgb(:,:,:) = ind2rgb(IM,xxxx);

imshow(IMrgb)

其中xxxx部分则为代替的索引表。经过网上查找资料,MATLAB 中有如下几种索引表:

(1)autumn:从红色向橘黄色、黄色平稳过渡;

(2)bone:为含有较高的蓝色组分的gray颜色查找表;

(3)colorcube:包含RGB颜色空间中尽可能多的规则间隔的颜色,它试图提供更多的灰色、纯红、纯绿和纯蓝;

(4)cool:由青色和洋红阴影组成的颜色。在青色和洋红间平滑过渡;

(5)copper:在黑色和亮铜色间平滑过渡;

(6)flag:由红、白、蓝、黑组成。每次索引值增加时,该颜色查找表会完全改变颜色;

(7)gray:线性灰阶颜色查找表;

(8)hot:在黑、红、橘红、黄、白间平滑过渡;

(9)hsv:颜色从红色开始,然后为黄、绿、青、蓝、洋红,最后

是红色。特别适合显示周期性函数;

(10)jet:在蓝、青、黄、橘红、红色间过渡;

(11)lines:生成颜色由坐标系对象的colororder属性和灰色阴影确定;

(12)pink:包含品红色的柔和阴影。可以对灰度照片进行棕褐色化;

(13)prism:重复红、橘红、黄、绿、蓝、紫色;

(14)spring:由洋红和黄色阴影组成;

(15)summer:由绿色和黄色阴影组成;

(16)white:白色;

(17)winter:由蓝色和绿色阴影组成。

如下为采用了某一个预设索引表着色的图像。

采用了winter索引表采用了cool索引表

由于本身图像上的颜色不是连续的,而是离散的,在某相邻的像素

相关文档
最新文档