1、实验一 数字图像文件基本 类型的转换,一、实验目的,了解Matlab支持4种图像类型:灰度图像、二值图像、索引图像和RGB图像。 学会运用MATLAB实现4种类型之间的转换。 掌握图像的基本运算。,数字图像处理:是将图像信号转换成数字格式并利用计算机对其进行一系列的操作,以得到所期望的结果。 数字图像的特点:处理信息量大;数字图像处理占用的频带较宽;数字图像中各个像素的相关性大。,二、实验原理,数字图像处理的主要研究内容,图像处理、图像分析和图像理解。 图像处理:强调在图像之间进行的变换。 图像分析:则主要是对图像中感兴趣的目标进行检测和测量,以获得他们的客观信息从而建立对图像的描述。 图像理
2、解:在图像分析的基础上,进一步研究图像中各目标的性质和它们之间的相互联系,并得出对图像内容含义的理解以及对原来客观场景的解释,从而指导和规划行动。,三、实验内容,图像读取 读取图像函数:imread() 格式: 变量名=imread(路径文件名,文件格式) 例:读取图像信息x=imread(city.jpg, jpg);,图像的显示,读取图像的显示 imshow( ) image( ) imshow(X) image()和subimage() 显示读入到内存中的图像。,图像保存1,将图像写到文件 imwrite() 格式: imwrite(变量名,新文件名) 例:imwrite(x,new_i
3、mage.bmp),图像保存2,将图像用save命令以mat文件形式保存到磁盘中,以后可用load命令调用。 格式: save 保存的文件名 变量名(图像) load 保存的文件名,(1)索引图像索引图像包括图像矩阵与颜色图数组。其中颜色图是按照图像中颜色值进行排序后的数组。对于每个象素,图像矩阵包含一个值,这个值就是颜色图数组中的索引。颜色图为m*3双精度值矩阵,各行分别指定红、绿、蓝单色值。图像矩阵与颜色图的关系依赖于图像矩阵是双精度还是无符号8位整数(unit8)双精度:第一点对应第一行,依次类推unit8: 有一个偏移量第0点对应第一行,第一点对应第二行,,MATLAB图像处理工具箱支
4、持四种基本图像类型: 索引图像、灰度图像、二进制图像、RGB图像,在MATLAB中,灰度图像是保存在一个矩阵中的,矩阵中的每个元素代表一个像素点。矩阵可以是双精度类型,其值域为0,1;也可以为uint8类型,其数据范围为0,255。矩阵的每个元素代表不同的亮度或灰度级:双精度:0黑色1白色unit8: 0黑色255白色,(2)灰度图像,(3)二进制图像,每个点为两离散值中的一个,这两个值代表开或 关。二进制图像保存在一个二维的由0(关)和1(开) 组成的矩阵中。从另一个角度讲,二进制图像可以看成 为一个仅包含黑与白的特殊灰度图像,也可看作仅有两 种颜色的索引图像。,(4)RGB图像,RGB图像
5、分别用红、绿、蓝三个亮度值为一组,代 表每个象素的颜色。这些亮度值直接存在图像数组中,而不是存放在颜色图中。 图像数组为m*n*3,m和n表示图像像素的行列数。,几种图像之间的转换:,通过matlab工具箱提供的函数来实现:索引图像(ind)、灰度图像(gray)、 RGB图像(rgb)1)灰度图像与索引图像的相互转换:gray2ind( ) ind2gray( )格式:X,MAP=gray2ind(I,n)I表示存放灰度图像的变量, n为颜色值(缺省64)I=ind2gray(X,MAP) X表示图像矩阵变量 , MAP表示颜色图数组变量,2) RGB图像与灰度图像的相互转换:rgb2gra
6、y( )格式:I=rgb2gray(RGB)将真彩图像RGB转换为灰度级亮度图像I3) RGB图像与索引图像的相互转换:rgb2ind( ) ind2rgb( )格式:X,MAP=rgb2ind(RGB)RGB=ind2rgb(X,MAP),将索引图像、灰度图像、 RGB图像转换为二进制图像im2bw( ),注意:如果输入图像不是灰度级图像,首先将其转换 为灰度级图像,然后,通过值化将灰度级图像转换为二 进制图像。输出图像在输入图像所有亮度小于给定值 (level)像素点处均为0,在其他地方均为1。level值得 取值范围为0,1 格式:BW=im2bw(I,level)BW=im2bw(X,
7、MAP,level)BW=im2bw(RGB,level),格式: imshow(I,n) 使用n个灰度级显示灰度图像I。 imshow(I,low high) 将I显示为灰度图像,并指定灰度级范围。 imshow(X,MAP) 使用颜色图map显示索引图像。 imshow(RGB) 显示真彩色RGB图像。 imshow(bw) 显示二进制图像。,索引、灰度、二进制图像的显示,颜色条显示:colorbar()colorbar(vert) 在垂直轴旁增加一颜色等级条colorbar(horiz) 在水平轴旁增加一颜色等级条,其它函数:,a=imread(city.jpg,jpg); subplo
8、t(2,2,1) subimage(a) title(原彩色图像) i=rgb2gray(a); subplot(2,2,2) subimage(i) title(灰度图像) X,MAP=rgb2ind(a,256); subplot(2,2,3) subimage(X) title(索引图像),例:任选一幅图像对其进行各种图像变换,图像处理的基本运算,图像代数运算 图像加法(函数:imadd() 功能:实现两幅图像相加或图像加上一个常数。 例:为图像中每个像素增加亮度x=imread(aaa.tif);I=rgb2gray(x);J=imadd(I,100);subplot(1,2,1);
9、subimage(I);subplot(1,2,2); subimage(J);,图像减法(函数:imsubtract() 功能:实现两幅图像相减或图像减去一个常数。 图像乘法(函数:immultiply() 功能:实现两幅图像相乘或图像的亮度缩放。 图像除法(函数:imdivide() 功能:实现两幅图像相除或图像的亮度缩放。,图像的空间域操作,图像的缩放(函数:imresize() 格式:J=imresize(I,n) n缩放比例 图像的旋转(函数:imrotate() 格式:J=imrotate(I,旋转度数,方法)方法: nearest 最近邻插值法bilinear 双线性插值法 图像的剪切(函数:imcrop() 格式:J=imcrop(I,xmin ymin xmax ymax),四、实验报告要求,1、简述实验目的及实验原理; 2、选取两幅大小一样的图像,首先转换成灰度图像,然后对其中一幅进行旋转(旋转角度自定),再对两幅图像进行代数运算,并附上程序及处理前后的图像; 3、对实验结果进行总结。,