一、实验目的和要求
1、熟悉并掌握MATLAB工具的使用;
2、实现图像的读取、显示、代数运算和简单变换。
二、实验内容简介
1、MATLAB的基础知识
2、数字图像处理基础
3、数字图像类型和转换
4、数字图像的读写与显示
三、实验步骤
1、显示目录文件下m文件并删除其中一个m文件
2、将图像转换为18个灰度级及16个灰度级的索引图像
第一个为灰度图像,后两个为灰度级不同的索引图像,可以发现,灰度级越高,图像质量越好。
3、将索引图像trees转换为灰度图像并进行显示
4、将彩色图像转换为灰度图像,并进行显示
5、将RGB图像greens.jpg转换为索引图像,并显示出来
- RGB图像转换为索引图像X,tol的范围为0.0~1.0。通过第三张图与第五张图对比发现,tol的数值越大,图像质量越差。
6、将索引图像转换为真彩色图像
- 两张看着差别不大,搜了一下,索引图像一般用来存放色彩要求比较简单的图像。
7、通过阈值化方法将索引图像转换为二值图像
- BW=im2bw(X,map,level) :将颜色映射图为图map的索引图像X转化为二值图像。Level:阈值,取值在0~1之间。Level的值越大,图像质量越差。
8、将灰度图像snowflakes.png转换为索引图像
- 可以看出,阈值越高,颜色越深。
9、用image函数显示矩阵
- 修改图像
10、在一个图形窗口中同时显示两幅图像
函数:subplot函数是将多个图画到一个平面上的工具。其中m、n表示一个m行n列的大画框,可显示 mn个图 ,p表示图所在位置。
四、习题
1、用MATLAB操作系统命令显示当前工作目录并显示当前目录下的文件。
2、读取图1-9的彩色图像并进行显示。
3、将图1-9的彩色图像转换为灰度图像和索引图像。
4、将图1-9的彩色图像转换为二值图像。
5、将图1-9的彩色图像和转换后的灰度图像、索引图像、二值图像共4幅图像在一个图像窗口显示。
五、总结
1、通过本次实验,认识了MATLAB界面,知道基本的编程语句,了解了一些函数各参数的意义。
2、还学会了图像的输入、输出,图像基本处理操作。
3、学习了图像的转换,彩色图像可以转换为灰度图像,灰度图像可以转换成二值图像;彩色图像可以转换成索引图像,索引图像可以转换成灰度图像,灰度图像可以转换成二值图像;索引图像可以直接转换成彩色图像,灰度图像不可以直接转换成彩色图像。
- 1)二值图像:只有0、1两个值,0是黑色,1是白色,在matlab中存为logic值
- 2)灰度图像:对于8位和16位图像数据可表示的灰度级别不同,通常我们选用的都是uint8的即256级灰度级的图像数据来表示灰度图像。
- 3)索引图像:包括一个数据矩阵X,一个颜色映像矩阵Map。其中Map是一个包含三列、若干行的数据阵列,其中每个元素的值均为[0, 1]之间的双精度浮点型数据。Map矩阵的每一行分别表示红色、绿色和蓝色的颜色值。在MATLAB中,索引图像是从像素值到颜色映射表值的“直接映射”。
- 4)RGB图像:有红、绿、蓝三个颜色通道,每个通道取值范围0~255。
4、认识了一些常用的数字图像格式
- 1)BMP:Windows操作系统中的标准图像格式,包含的图像信息较丰富,几乎不进行压缩,但占用磁盘空间过大。
- 2)JPEG:是我们最常见的图像格式,文件扩展名为.jpg或.jpeg,文件尺寸小,下载速度快。
- 3)TIFF:苹果电脑中广泛使用的图像格式,图像格式复杂,存储信息多。
- 4)PNG:一种新兴的网络图像格式,图像存储形式丰富,兼有GIF和JPEG的色彩模式,他把文件压缩到极限以利于网络传播,同时又保留与图像品质有关的东西。
- 5)SVG:可缩放的矢量图形,可以任意放大图形,却不损失图形质量。
5、以下是对学到的函数:
- 1)imread(path)函数:从图像所在路径读取图像的数据信息存为矩阵,就是读入某图像文件。
- 2)imshow(image)函数:将读取到的图像显示到figure中。
- 3)imwrite(image,path)函数:将图像以某种格式存储到磁盘的某路径下。
- 4)save函数:将内存中的图像数据存为文件。
- 5)image函数:建立并显示图像。
- 6)subimage函数:在一个图像窗口中显示多个图像。
- 7)subplot(m,n,p)函数:subplot函数是将多个图画到一个平面上的工具。其中m、n表示一个m行n列的大画框,可显示 mn个图 ,p表示图所在位置。
- 8)I = ind2grayX,map):将具有颜色图map的索引图像X转换为灰度图像I。
- 9)[X,map] = gray2ind(I,n)或[X,map]= gray2ind(BW,n):将灰度图像I或二值图BW转换为索引图像X,n是灰度级。
- 10)J = rgb2grayI):将彩色图像I转为灰度图像J。
- 11)[X,map] = rgb2ind(I,n):用最小方差量化抖动方法将RGB图像转换为索引图像X,map图像中包含至多n个颜色。
- [X,map] = rgb2ind(I,tol):用均量化抖动方法将RGB图像转换为索引图像X,tol的范围为0.0~1.0。tol的数值越大,图像质量越差。
- 12)RGB = ind2grayX,map):将具有颜色映射map的索引图像X转换成真彩色图像RGB。
- 13)BW =im2bw(I,level) :将灰度图像I转化为二值图像。
- BW =im2bw(X,map,level) :将颜色映射图为图map的索引图像X转化为二值图像。
- BW = im2bw(RGB,level) :将RGB图像转化为二值图像。
- :阈值,取值在0~1之间。的值越大,图像质量越差。
- 14)X=grayslice(I,n) :将图像I的亮度均匀量化为n个等级,并返回索引图像X,n的默认值为 64。
- X=grayslice(I,v) :按指定的阈值向量v(每一个元素都在0和1之间)对图像I的亮度进行划分,并返回索引图像X