第3部分23:图像处理常用MATLAB函数.ppt
《第3部分23:图像处理常用MATLAB函数.ppt》由会员分享,可在线阅读,更多相关《第3部分23:图像处理常用MATLAB函数.ppt(91页珍藏版)》请在课桌文档上搜索。
1、第B3章 MATLAB在图像处理中的应用,7.1 概述 7.2 图像的读写和查询 7.3 图像的显示 7.4 图像的算术运算 7.5 图像的几何操作 7.6 线性滤波 7.7 图像的变换 7.8 图像分析和增强 7.9 基于区域的图像处理,7.1 概述,7.1.1 MATLAB中的图像和图像处理工具箱 MATLAB中大多数图像是用二维数组(矩阵)double(64位)浮点型,或uint8(8位无符号整数)、uint16(16位无符号整数)来存储的,矩阵中的每一个元素对应图像中的一个像素(pixel).例如:一幅由200行300列不同灰度值的点组成的图像可以用200X300的矩阵来存储。对于彩色
2、图像,如RGB图像,需要用三维数组来存储。,7.1.2 MATLAB中的图像类型,二值图像(Binary):图像的取值为0或1。索引图像(Indexed,pseudocolor):图像为mXn矩阵,矩阵元素的值指向颜色映像表(colormap)。灰度图像(intensity,gray scale,gray level):图像为mXn矩阵,矩阵元素的值指的是灰度值。对single or double矩阵取值范围:0,1,对 uint8矩阵取值范围:0,255,对uint16矩阵取值范围:0,65535,对int16矩阵取值范围:-32768,32767。真彩色图像(RGB):图像为mXnX3的矩
3、阵。,二值图像(Binary),索引图像(Indexed),灰度图像(Grayscale),真彩色图像(Truecolor),gray2ind:Convert a grayscale image to an indexed image.grayslice:Convert a grayscale image to an indexed image using multilevel thresholding.im2bw:Convert a grayscale image,indexed image,or truecolor image,to a binary imageind2gray:Conve
4、rt an indexed image to a grayscale image。,7.1.3 MATLAB中的图像类型之间的转换,ind2rgb:Convert an indexed image to a truecolor image.mat2gray:Convert a data matrix to a grayscale image,by scalingthe data.rgb2gray:Convert a truecolor image to a grayscale image.rgb2ind:Convert a truecolor image to an indexed image
5、.,im2uint8 rgb2=im2uint8(rgb1)im2uint16im2int16im2singleim2double,7.1.4 图像数据类型之间的转换,用N维数组来存储图像序列 mXnXp的数组表示p个二维图像,7.1.5 图像序列,mXnX3Xp 表示?,MATLAB支持下列图像文件格式:BMP(Microsoft Windows Bitmap 位图)HDF(Hierarchical Data Format 层次数据)JPEG(Joint Photographic Expert Group 静止图像压缩标准)PCX(Paintbrush 画刷格式)PNG(Portable N
6、etwork Graphics 可移植网络图像)TIFF(Tagged Image File Format 标记图像文件)XWD(X Window Dump)GIF(Graphics Interchange Format 图形交换),7.1.5 图像文件格式,7.2 图像的读写和查询,7.2.1 图像文件的读取A=imread(文件名,文件格式)X,map=imread(文件名,文件格式)文件名必须在MATLAB的搜索路径范围内,否则需要指出完整的路径。RGB=imread(football.jpg);X,map=imread(trees.tif);,7.2 图像的读写和查询,7.2.2 图像
7、文件的写入 imwrite(A,filename,fmt):写图像A到文件名filename中,格式为fmtimwrite(X,map,filename,fmt):写索引图像X和它相连的颜色映像表map到文件名filename中,格式为fmt 例如:imwrite(A,myfile.jpg,Quality,100);写图像矩阵到文件名为myfile.jpg的文件中,参数Quality,100是控制存入时压缩比的。,7.2 图像的读写和查询,7.2.3 图像文件信息的查询 info=imfinfo(filename):从图像文件中查询其信息,包括文件名、路径、格式、版本号、文件修改时间、文件大小
8、、图像宽度和长度、每个像素的位数、图像类型等。例如:info=imfinfo(football.jpg),7.3 图像的显示,7.3.1 标准图像显示imshow(I,n)imshow(I,low high)imshow(X,map)参考MATLAB帮助moon=imread(moon.tif);imshow(moon);或者:imshow(moon.tif);moon=getimage,7.3 图像的显示,7.3.2 图像的特殊显示技术添加颜色条显示多帧图像阵列多图的显示纹理映射,7.3 图像的显示,7.3.2 图像的特殊显示技术添加颜色条 RGB=imread(saturn.png);I=
9、rgb2gray(RGB);h=1 2 1;0 0 0;-1-2-1;I2=filter2(h,I);imshow(I2,),colorbar,7.3 图像的显示,7.3.2 图像的特殊显示技术显示多帧图像阵列多帧的单帧显示多帧的一次性显示将多帧阵列转化为电影,多帧的单帧显示 load mri imshow(D(:,:,:,7)多帧的一次性显示 load mri montage(D,map)将多帧阵列转化为电影 load mri mov=immovie(D,map);movie(mov),7.3 图像的显示,7.3.2 图像的特殊显示技术多图的显示 例1.多幅图像在不同窗口显示X1,map1=
10、imread(forest.tif);X2,map2=imread(trees.tif);imshow(X1,map1),figure,imshow(X2,map2),7.3 图像的显示,7.3.2 图像的特殊显示技术多图的显示 例2.多幅图像在同一窗口显示X1,map1=imread(forest.tif);X2,map2=imread(trees.tif);subplot(1,2,1),imshow(X1,map1)subplot(1,2,2),imshow(X2,map2)使用同一个颜色映像表,产生不能接受的显示结果,使用subimage可以改变这一情况,7.3 图像的显示,7.3.2
11、图像的特殊显示技术多图的显示 例3.多幅图像在同一窗口显示X1,map1=imread(forest.tif);X2,map2=imread(trees.tif);subplot(1,2,1),subimage(X1,map1)subplot(1,2,2),subimage(X2,map2)subimage在显示之前,将图像转换为真彩色,因此避免了colormap的共享问题。,7.3 图像的显示,7.3.2 图像的特殊显示技术纹理映射:将图像显示在一个特定的参数曲面上 warp:MATLAB中利用插值算法将图像映射到曲面网格上 例.将peppers.png图像纹理映射到圆柱面和球面 x,y,z
12、=cylinder;I=imread(peppers.png);subplot(1,2,1),warp(x,y,z,I);x,y,z=sphere(50);subplot(1,2,2),warp(x,y,z,I);,7.4 图像的算术运算,图像的加法 imadd图像的减法 imsubtract图像的乘法 immultiply图像的除法 imdivide图像的补 imcomplement图像的绝对值的差 imabsdiff图像的线性组合 imlincomb,7.4 图像的算术运算,I=imread(rice.png);I2=imread(cameraman.tif);K=imdivide(ima
13、dd(I,I2),2);%not recommendedK=imlincomb(.5,I,.5,I2);%recommended,7.5 图像的几何操作,图像的缩放 imresize图像的旋转 imrotate图像的剪裁 imcrop图像的一般几何变换 imtransform,7.5.1 图像的插值运算,最近邻插值方法(Nearest neighbor)双线性插值方法(Bilinear)双三次插值方法(Bicubic),7.5.2 图像的缩放和旋转,B=imresize(A,m,method)B=imresize(A,mrows ncols,method),I=imread(circuit.t
14、if);J=imresize(I,1.25);imshow(I)figure,imshow(J),I=imread(circuit.tif);J=imresize(I,100 150,bilinear);imshow(I)figure,imshow(J),7.5.2 图像的缩放和旋转,B=imrotate(A,angle,method,crop),I=imread(circuit.tif);J=imrotate(I,35,bilinear);imshow(I)figure,imshow(J)如果:J=imrotate(I,35,bilinear,crop);结果的区别?,7.5.3 图像的剪裁
15、,B=imcrop(A)B=imcrop(X,map)用户可以用鼠标选取区域,也可以在函数中定义图像的矩形区域参数,I=imread(circuit.tif);J=imcrop(I);figure,imshow(J)上面剪切图像J也可以用:J=imcrop(I,60 40 100 90);其中位置矢量表示为:xmin ymin width height.,7.5.4 图像的一般几何变换,B=imtransform(A,TFORM,INTERP)它根据变换结构(TFORM)变换二维图像A,变换结构TFORM是由maketform函数或cp2tform函数返回的,INTERP可以取nearest,
16、bilinear(默认值)或bicubic,7.5.4 图像的一般几何变换,B=imtransform(A,TFORM,INTERP)I=imread(cameraman.tif);tform=maketform(affine,1 0 0;0.5 1 0;0 0 1);J=imtransform(I,tform);imshow(J),figure,imshow(J),7.6 图像的线性滤波,滤波是一种图像修正或增强技术。可以突出图像的某些特征,也可以删除另一些特征。图像滤波的本质是一种邻域操作,输出图像的任一个像素值都是通过输入图像对应的像素邻域内的像素值利用一定的算法得到的。图像的线性滤波就
17、是输出图像任一个像素值都是通过输入图像对应的像素邻域内的像素值线性组合得到的。图像的线性滤波是通过卷积来完成的。,7.6 图像的线性滤波,二维卷积函数 conv2滤波函数 filter2图像滤波 imfilter预定义滤波器 fspecial,7.6.1 二维卷积函数 conv2,A=17 24 1 8 15 23 5 7 14 16 4 6 13 20 22 10 12 19 21 3 11 18 25 2 9,h=8 1 6 3 5 7 4 9 2,C=conv2(A,h),卷积步骤:,关于卷积核的中心,旋转卷积核180度。滑动卷积核,将卷积核的中心位于图像矩阵的每一个元素。将旋转后的卷积
18、核作为权重,乘以对应的矩阵元素求加权和,计算卷积输出(2,4),C=conv2(A,B)C=conv2(A,B,shape)A:输入图像,B:卷积核,C:输出图像,若A大小为mana,B大小为mbnb,则C大小为(ma+mb-1)(na+nb-1)shape指定卷积运算的范围:shape=full(the default),返回全部二维卷积结果shape=same,返回与A同样大小的卷积中心部分shape=valid,不考虑边界补零,返回C大小为(ma-mb+1)(na-nb+1),7.6.2 相关运算实现滤波:filter2,相关运算(correlation)滑动相关核,将相关核的中心位于图
19、像矩阵的每一个元素。将相关核作为权重,乘以对应的矩阵元素求加权和用相关运算实现滤波的函数是filter2B=filter2(h,A),计算相关输出(2,4),7.6.3 图像的线性滤波,imfilterB=imfilter(A,H,option1,option2,)A:多维图像阵列,H:多维滤波器,option1,option2决定边缘上的处理方法,输出图像大小,采用与filter2相同的方法还是卷积的方法。,例:利用imfilter函数实现均值滤波,I=imread(coins.png);h=ones(5,5)/25;I2=imfilter(I,h);imshow(I),title(Orig
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 部分 23 图像 处理 常用 MATLAB 函数
链接地址:https://www.desk33.com/p-740456.html