《matlab图像处理命令-课件.ppt》由会员分享,可在线阅读,更多相关《matlab图像处理命令-课件.ppt(108页珍藏版)》请在三一办公上搜索。
1、MATLAB常用的图像操作,MATLAB常用的图像操作,数字图像研究的领域,数字图像研究的领域非常广泛图像的数字化图像变换图像增强图像恢复图像分割图像分析与理解图像编码压缩,数字图像研究的领域数字图像研究的领域非常广泛,MATLAB图像处理工具箱,提供了丰富的图像处理函数 图像的几何变换图像的领域和图像块操作线性滤波和滤波器设计图像变换图像分析与增强二值图像操作感兴趣区域处理,MATLAB图像处理工具箱 提供了丰富的图像处理函数,MATLAB图像处理工具箱,MATLAB图像处理工具箱提供的函数大多数是M文件,可以查看这些文件的代码并进行改进,也可以把自己编写的代码加入其中,来扩充图像处理的功能
2、。,MATLAB图像处理工具箱 MATLAB图像处理工具箱提供的,MATLAB中的图像,MATLAB中的数字图像由一个或多个矩阵表示矩阵运算的语法对数字图像同样适用图像按像素存储,即矩阵的每个元素代表一个像素例如一幅200行300列的图像,在MATLAB中存储为200300大小的矩阵有些图像,如RGB图像,需要三维矩阵表示,每一维代表一种颜色,MATLAB中的图像 MATLAB中的数字图像由一个或多个矩,matlab图像处理命令-课件,matlab图像处理命令-课件,MATLAB中的图像,MATLAB中图像数据矩阵的存储方式为:双精度(double)类型,即64位的浮点数无符号整数(uint8
3、) 类型在进行图像数据矩阵运算时,通常要将图像转换成double型uint8类型的优势仅在于节省存储空间,MATLAB中的图像 MATLAB中图像数据矩阵的存储方式为,MATLAB中支持的图像类型,真彩色图像索引色图像灰度图像二值图像还可处理由多帧图像组成的图像序列,MATLAB中支持的图像类型 真彩色图像,真彩色图像,又称为RGB图像利用R、G、B 3个分量表示一个像素的颜色,通过三基色可以合成出任意颜色一个尺寸为mn的RGB图像,在MATLAB中存储为一个mn3的多维数组图像A中(x,y)处的像素的RGB值:A(x,y,1:3)若RGB图像用双精度型来存储,亮度值域为0,1,则一个像素值为
4、(0,0,0)代表黑色,值为(1,1,1)代表白色用无符号整型存储,亮度值范围0,255,真彩色图像 又称为RGB图像,matlab图像处理命令-课件,索引色图像,把不同的颜色对应为不同的序号,各像素存储的是颜色的序号而不是颜色值本身。MATLAB中的索引色图像包括两个结构调色板:一个m3的色彩映射矩阵,每一行代表一种颜色,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定的颜色,索引色图像 把不同的颜色对应为不同的序号,各像素存储的是颜色,matlab图像处理命令-课件,索引色图像,MATLAB中提供一些产生预存的标准调色板的函数,索引色图像 MATLAB中提供一些产生预存的标准调色
5、板的函数,jet,Hsv,Hot,jetHsvHot,索引色图像,默认情况下,调用调色板函数会产生一个643的调色板,用户也可以自定义调色板的大小,如hot(m)产生一个m3的调色板,其颜色范围从黑经过红、橘红、黄到白,索引色图像 默认情况下,调用调色板函数会产生一个643的调,索引色图像,MATLAB中的索引色图像包括两个结构图像数据矩阵,也可以是double和uint8两种类型 当图像数据为double类型时,值1代表调色板中的第1行,值2代表第2行 如果图像数据为uint8类型,0代表调色板的第1行,值1代表第2行,索引色图像 MATLAB中的索引色图像包括两个结构,索引色图像,当读入图
6、像时,MATLAB同时加载调色板和图像load flujetimage(X),索引色图像 当读入图像时,MATLAB同时加载调色板和图像,matlab图像处理命令-课件,matlab图像处理命令-课件,索引色图像,当读入图像时,MATLAB同时加载调色板和图像load flujetimage(X)colormap(hot),索引色图像 当读入图像时,MATLAB同时加载调色板和图像,matlab图像处理命令-课件,灰度图像,存储灰度图像只需要一个数据矩阵。 数据类型可以是double,0,1;也可以是uint8,0,255,灰度图像 存储灰度图像只需要一个数据矩阵。 数据类型可,matlab图
7、像处理命令-课件,二值图像,二值图像只需一个数据矩阵,每个像素只有两个灰度值,可以采用uint8或double类型存储。 MATLAB工具箱中以二值图像作为返回结果的函数都使用uint8类型。,二值图像 二值图像只需一个数据矩阵,每个像素只有两个灰度值,,图像序列,MATLAB工具箱支持将多帧图像连接成图像序列。 图像序列是一个4维数组,图像帧的序号在图像的长、宽、颜色深度之后构成第4维。 分散的图像也可以合并成图像序列,前提是各图像尺寸必须相同,若是索引色图像,调色板也必须相同。 可参考cat()函数 Acat(4,A1,A2,A3,A4,A5),图像序列 MATLAB工具箱支持将多帧图像连
8、接成图像序列。,matlab图像处理命令-课件,matlab图像处理命令-课件,图像类型转换函数,图像类型转换函数,matlab图像处理命令-课件,matlab图像处理命令-课件,matlab图像处理命令-课件,matlab图像处理命令-课件,读写图像文件,读写图像文件,图形图像文件的读取,参数fmt指定了图像的格式,可选的值为cur、bmp、hdf、ico、jpg、pcx、png、tif、xwd,(适用于cur、ico、tif格式),图形图像文件的读取参数fmt指定了图像的格式,可选的值为cu,图形图像文件的写入,图形图像文件的写入,图形图像文件信息的查询,图形图像文件信息的查询,文件最后修
9、改时间文件大小(字节)文件格式文件格式版本号图像的宽图像的高位深度图像类型调色板,文件最后修改时间,图像的显示,图像的显示,图像文件的显示,索引图像及其显示,图像文件的显示索引图像及其显示,图像文件的显示,索引图像及其显示用image函数显示由矩阵表示的图像,MATLAB将矩阵的每个元素对应到当前调色板的一行,并取这一行的颜色值作为该点的颜色,必须先指定调色板,图像文件的显示索引图像及其显示,load clown,image(X),colormap(map) image(X),load clownimage(X)colormap(map,X,map = imread(trees.tif);,i
10、mshow(X,map),X,map = imread(trees.tif);,图像文件的显示,灰度图像的显示要显示一副灰度图像,可以调用函数 imshow 或 imagesc,图像文件的显示灰度图像的显示,图像文件的显示,图像文件的显示,imshow(cameraman.tif ),I = imread(cameraman.tif);imshow(I),h = imshow(I,0 80);,imshow(cameraman.tif ) I = i,matlab图像处理命令-课件,图像文件的显示,图像文件的显示,matlab图像处理命令-课件,matlab图像处理命令-课件,matlab图像
11、处理命令-课件,图像文件的显示,RGB图像的显示image(RGB) imshow(RGB),图像文件的显示RGB图像的显示,图像文件的显示,colorbar用于显示颜色条,由图像中使用到的色彩排列而成,图像文件的显示colorbar,matlab图像处理命令-课件,图像文件的显示,montage多帧图像指的是包含不止一幅图像的图像,如HDF和TIFF文件类型。同时显示多帧图像的所有帧显示多帧图像中的一帧,图像文件的显示montage,图像文件的显示,montage,图像文件的显示montage,matlab图像处理命令-课件,matlab图像处理命令-课件,图像文件的显示,immovie将多
12、帧图像转换成MATLAB动画,图像文件的显示immovie,图像文件的显示,subimage可在一个图像窗口内使用多个调色板,使得各种图像能在同一个图像窗口中显示,图像文件的显示subimage,图像文件的显示,图像文件的显示,matlab图像处理命令-课件,图像的代数运算,Z = imabsdiff(X,Y),图像的代数运算Z = imabsdiff(X,Y),matlab图像处理命令-课件,图像的代数运算,Z = imadd(X,Y),图像的代数运算Z = imadd(X,Y),matlab图像处理命令-课件,matlab图像处理命令-课件,图像的代数运算,IM2 = imcompleme
13、nt(IM),图像的代数运算IM2 = imcomplement(IM),matlab图像处理命令-课件,matlab图像处理命令-课件,图像的代数运算,Z = imdivide(X,Y),图像的代数运算Z = imdivide(X,Y),matlab图像处理命令-课件,图像的代数运算,Z = immultiply(X,Y),图像的代数运算Z = immultiply(X,Y),图像几何运算,在对图像进行缩放、旋转等几何变换时,由于数字图像的坐标是整数,经过这些变换后的坐标不一定是整数,因此要对变换之后的整数坐标位置的像素值进行估计。几何运算包括:空间变换灰度插值最近邻插值双线性插值双三次插值
14、,图像几何运算 在对图像进行缩放、旋转等几何变换时,由于数字图,图像几何运算,图像的插值缩放,图像几何运算 图像的插值缩放,程序例:,figuresubplot(2,2,1),imshow(X);subplot(2,2,2),imshow(X1);subplot(2,2,3),imshow(X2);subplot(2,2,4),imshow(X3);imwrite(X,X.jpg)imwrite(X1,x1.jpg)imwrite(X2,x2.jpg)imwrite(X3,x3.jpg),clearclose allX=imread(autumn.tif);X1=imresize(X,4,ne
15、arest);X2=imresize(X,4,bilinear);X3=imresize(X,4,bicubic);figure,imshow(X)figure,imshow(X1)figure,imshow(X2)figure,imshow(X3),程序例:figureclear,图像几何运算,图像的插值旋转,图像几何运算 图像的插值旋转,图像几何运算,图像的剪切,交互式,rectXmin Ymin Width Height,图像几何运算 图像的剪切交互式rect,matlab图像处理命令-课件,图像增强,图像增强空间域点运算直方图修正法灰度变换区域运算锐化平滑频率,图像增强,直方图增强对比
16、度增强二维卷积和二维滤波平滑滤波锐化,图像增强直方图增强,直方图增强,直方图,只对“二值”或“灰度”图像有效,直方图增强直方图只对“二值”或“灰度”图像有效,灰度级数目,灰度级数目,直方图增强,直方图均衡化,只对“二值”或“灰度”图像有效,直方图增强直方图均衡化只对“二值”或“灰度”图像有效,matlab图像处理命令-课件,对比度增强,该方法按一定的规则修改输入图像每个像素的灰度,从而改变图像灰度的动态范围。它可以使灰度动态范围扩展,也可以压缩,或进行分段处理等。,对比度增强该方法按一定的规则修改输入图像每个像素的灰度,从而,0f(x,y)g(x,y)abcd0f(x,y)g(x,y),对比度
17、增强,灰度调整,I,J范围:01 默认为0;1 J=imadjust(I) 将灰度图像 I 中的亮度值映射到 J 中的新值并使 1% 的数据是在低和高强度饱和,这增加了输出图像 J 的对比度值。,对比度增强灰度调整0IJlow_inhigh_inlow_o,对比度增强,灰度调整,J=imadjust(I,low_in; high_in, low_out; high_out, gamma),对比度增强灰度调整0IJlow_inhigh_inlow_o,灰度的Gamma变换,其中,x、y的取值范围为0,1。esp为补偿系数,r则为Gamma系数。Gamma变换是根据r的不同取值选择性的增强低灰度区
18、域的对比度或者高灰度区域的对比度。,J=imadjust(I,low_in; high_in, low_out; high_out, gamma),灰度的Gamma变换其中,x、y的取值范围为0,1。es,matlab图像处理命令-课件,matlab图像处理命令-课件,彩色(RGB)调整,R G B,彩色(RGB)调整R G B,matlab图像处理命令-课件,I =imread(girl.jpg);J=imadjust(I,2.2);K=imadjust(J,1/2.2);subplot(2,3,1),imshow(I) ,title(RGB-I)subplot(2,3,2),imshow(
19、J) ,title(RGB-J)subplot(2,3,3),imshow(K) ,title(RGB-K)%I1=rgb2gray(I);J1=imadjust(I1,2.2);K1=imadjust(J1,1/2.2);subplot(2,3,4),imshow(I1) ,title(Gray-I)subplot(2,3,5),imshow(J1) ,title(Gray-J)subplot(2,3,6),imshow(K1) ,title(Gray-K),I =imread(girl.jpg);,I =imread(girl.jpg);J=imadjust(I,2.2);K=imadju
20、st(J,1/2.2);subplot(2,3,1),imshow(I) ,title(RGB-I)subplot(2,3,2),imshow(J) ,title(RGB-J)subplot(2,3,3),imshow(K) ,title(RGB-K)%I1=rgb2gray(I);J1=imadjust(I1,2.2);K1=imadjust(J1,1/2.2);subplot(2,3,4),imshow(I1) ,title(Gray-I)subplot(2,3,5),imshow(J1) ,title(Gray-J)subplot(2,3,6),imshow(K1) ,title(Gra
21、y-K),I =imread(girl.jpg);,对比度增强,灰度调整对数变换,只对“灰度”图像有效,对比度增强灰度调整只对“灰度”图像有效,matlab图像处理命令-课件,对比度增强,Gamma校正Gamma因子的取值决定了输入图像到输出图像的灰度映射方式,即决定了增强低灰度级还是高灰度级。,对比度增强Gamma校正,matlab图像处理命令-课件,平滑滤波,中值滤波,平滑滤波中值滤波,平滑滤波,平滑技术用于平滑图像中的噪声基本方法是:求像素灰度的平均值和中值Matlab工具箱中提供的去噪的方法:线性滤波中值滤波自适应滤波,平滑滤波平滑技术用于平滑图像中的噪声,平滑滤波,平滑滤波,matl
22、ab图像处理命令-课件,锐化,锐化技术用于加强图像中的目标边界和图像细节。常用的方法是在空间域中对图像进行微分处理,也可以在频域中运用高通滤波技术。因为需要锐化的边界可能是任意走向的,因此需要锐化算子是无向的,即无论边界是什么走向,只要幅度相同,算子的输出就相同梯度算子、拉氏算子,锐化 锐化技术用于加强图像中的目标边界和图像细节。常用的方法,matlab图像处理命令-课件,I = imread(brain.bmp);subplot(2,2,1),imshow(I);BW1 = edge(I,roberts); %进行Roberts算子边缘检测,门限值采用默认值BW2 = edge(I,prewitt); %进行Prewitt算子边缘检测,门限值采用默认值BW3 = edge(I,sobel); %进行Sobel算子边缘检测,门限值采用默认值subplot(2,2,2), imshow(BW1,);subplot(2,2,3), imshow(BW2,);subplot(2,2,4), imshow(BW3,);,Matlab边缘检测程序,Roberts, Prewitt, Sobel算法比较,I = imread(brain.bmp);Matl,matlab图像处理命令-课件,