1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,二、读图像和图像信息,1、读取图像,函数imread可以从任何Matlab支持的图像文件格式中,以任意位深度读取一幅图像。格式为:,X,MAP=imread(FILENAME.FMT),其中:,FILENAME为需要读入的图像文件名,FMT为图像格式,1,二、读图像和图像信息,2、读取图像信息,可以通过调用imfinfo函数获得与图像文件有关的信息,格式如下:,INFO=imfinfo(FILENAME,FMT),其中:,返回的INFO是Matlab的一个结构体。,2,三、图像类别与数据格式,1、真彩图像,
2、3,三、图像类别与数据格式,4、二值图像,6,四、图像显示,Matlab的图像显示函数主要有:,imshow、colorbar和subimage三个。,7,四、图像显示,1、imshow(I,n),显示灰度级为n的图像,n缺省为256。,【例】按256灰度级显示,I=imread(moon.tif);,imshow(I,256),colorbar,8,四、图像显示,【例】按8灰度级显示,I=imread(moon.tif);,imshow(I,8),colorbar,9,四、图像显示,2、imshow(I,low,high),以灰度范围low,high显示图像,如果不知道灰度范围,可以用ims
3、how(I,)显示。,【例】按最大灰度范围显示,I=imread(moon.tif);,imshow(I,),colorbar,10,四、图像显示,【例】按指定灰度范围显示,I=imread(moon.tif);,imshow(I,64,128),colorbar,11,四、图像显示,3、imshow(BW),显示二值图像。,【例】双精度灰度图像,bw1=zeros(100,100);,bw1(2:2:98,2:2:98)=1;,imshow(bw1);,12,四、图像显示,【例】8位的灰度图像,bw1=zeros(100,100);,bw1(2:2:98,2:2:98)=1;,bw2=uin
4、t8(bw1);,imshow(bw2,);,colorbar,13,四、图像显示,【例】显示二值图像,BW=imread(circles.tif);,imshow(BW);,14,四、图像显示,【例】取反显示二值图像,BW=imread(circles.tif);,imshow(BW);,15,四、图像显示,【例】显示二值图像,clf,BW=imread(circles.tif);,imshow(BW,1 0 0;0 0 1);,16,四、图像显示,4、imshow(X,MAP),显示索引图像,X为数据图像矩阵,MAP为调色板。,【例】显示索引图像,X,MAP=imread(canoe.ti
5、f);,imshow(X,MAP);,colorbar,17,四、图像显示,【例】显示伪彩色图像,I=imread(moon.tif);,imshow(I,jet(256),colorbar,18,四、图像显示,5、imshow(RGB),显示真彩色图像。,【例】,rgb=imread(flowers.tif);,imshow(rgb);,19,四、图像显示,6、imshow filename,直接显示图像。,【例】直接显示图像,imshow(moon.tif);,I=getimage;,20,四、图像显示,7、subimage,多图显示多个调色板的图像。,【例】,load trees;,x2
6、map2=imread(forest.tif);,subplot(2,1,1),subimage(X,map);colorbar,subplot(2,1,2),subimage(x2,map2);colorbar,21,四、图像显示,22,四、图像显示,【例】不用专用函数显示多图,load trees;,x2,map2=imread(forest.tif);,subplot(2,1,1),imshow(x2,map2);colorbar,subplot(2,1,2),imshow(X,map);colorbar,23,四、图像显示,24,五、保存图像,1、imwrite函数,imwrite(
7、I,文件名,文件格式)保存无调色板的图像,imwrite(X,MAP,文件名,文件格式)保存有调色板的图像,imwrite(.,文件名)文件名中含格式,imwrite(.,参数,值)指定保存参数,文件格式:bmp、jpg、pcx、tif。,25,五、保存图像,【例】将tif图像保存为jpg图像,x,map=imread(canoe.tif);,imwrite(x,map,canoe.jpg,JPG,Quality,75),26,数字图像读取,imfinfo(1.jpg)%显示图象文件1.jpg的属性,读一幅图象(灰度值图象或彩色图象),研究其图象参数,A=imread(1.jpg);%读图象1
8、jpg,并将像素值阵列赋给矩阵A,imshow(A);%显示图象A,A%显示图象A的像素值(若图象过大,显示时,间就会过长,按ctrl+C终止),whos%显示内存中各变量的类型,包括A,27,图像的灰度直方图,a=imread(1.jpg);,imshow(a);,figure,imhist(a,64);%作b的灰度直方图,64 可改为128,256等,28,图像对比度增强,I=imread(pout.tif);,J=imadjust(I,0.3 0.7,);,imshow(I),figure,imshow(J),J=imadjust(I,low_in high_in,low_out hi
9、gh_out),返回图象I经过直方图调整后的图象J,low_in high_in为,图象中要变换的灰度范围,low_out high_out指定了变换,的灰度范围。,29,人为加噪声,I=imread(eight.tif);,J1=imnoise(I,gaussian,0,0.02);,J2=imnoise(I,salt,J3=imnoise(I,speckle,0.02);,subplot(2,2,1),imshow(I),title(原图像);,subplot(2,2,2),imshow(J1),title(加高斯噪声);,subplot(2,2,3),imshow(J2),title(加
10、椒盐噪声);,subplot(2,2,4),imshow(J3),title(加乘性噪声),其中J=imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。参数type和parameters用于确定噪声的类型和相应的参数。函数subplot,作用就是将多幅图像显示再同一幅图像显示对话框中。其语法格式为:subplot(m,n,p)其作用就是将一个图像显示对话框分成m行n列,并显示第p幅图像。,30,人为加噪声,%例图像加噪声再通过多次相加求平均的方法祛除噪声,I,M=imread(eight.tif);,J=imnoise(I,gaussian,0,0.5);,subplot(
11、1,2,1),imshow(I,M),title(原图像);,subplot(1,2,2),imshow(J,M),title(加噪声后图像);,k=zeros(242,308);,for i=1:100,J=imnoise(I,gaussian,0,0.02);,J1=im2double(J);,k=k+J1;,End,k=k./100;%求图像的平均,figure;imshow(k),title(相加求平均后的图像);,31,图像差值放大,I=imread(1.jpg);,J=imresize(I,10);,imshow(I),title(原图像),figure,imshow(J),tit
12、le(放大后的图像);,B=imresize(A,m)返回原图A的m倍放大的图像(m小于1时效果是缩小)。,32,图像旋转,I=imread(1.jpg);,J=imrotate(I,30,bilinear);,imshow(I);title(原图像),figure,imshow(J),title(旋转后的图像);,B=imrotate(A,angle,method),函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选用的值为nearest(最邻近法),bilinear(双线性插值),bicubic(双三次插值),默认为nearest。一般说来旋转后的图像会比原图大,超出原图部分值为0。,33,傅里叶变换,load imdemos saturn2,imshow(saturn2);,B=fftshift(fft2(saturn2);,figure,imshow(log(abs(B),notruesize);,B=fft2(I),返回图象I的二维fft变换矩阵,输入图象I和输出图象,B大小相同。,34,






