2-Matlab基本图像操作.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

数字图像处理-Matlab基本图像操作同济大学现代农业研究院2MATLAB图像处理3二、读图像和图像信息1、读取图像函数imread可以从任何Matlab支持的图像文件格式中,以任意位深度读取一幅图像。格式为:[X,MAP]=imread(‘FILENAME.FMT’)其中:FILENAME-为需要读入的图像文件名FMT-为图像格式图像格式格式名称描述可识别扩展符TIFF加标记的图像文件格式.tif,.tiffJPEG联合图像专家组.jpg,.jpegGIF图形交换格式.gifBMPWindows位图.bmpPNG可移植网络图形.pngXWDXWindow转储.xwd5二、读图像和图像信息2、读取图像信息可以通过调用imfinfo函数获得与图像文件有关的信息,格式如下:INFO=imfinfo(FILENAME,'FMT')其中:返回的INFO是Matlab的一个结构体。语法:[M,N]=size(‘filename’)说明:给出一幅图像的行数和列数Matlab图像编程图像的读取imread语句example:f=imread(‘bed.jpg’);图像的大小size语句example:f=imread(‘bed.jpg’);size(f)MATLAB图像类型亮度图像(灰度图像):数据矩阵I表示灰度值,如果是uint8类型,数值范围可以是[0,255];如果是uint16类型,数值范围为[0,65536]二值图像:在MATLAB数组中只有0和1两个取值。索引图像:包括一个数据矩阵X(整数,对应MAP中的行号)和色图阵MAPRGB图像:包括一个m*n*3的数据矩阵8三、图像类别与数据格式1、真彩图像9三、图像类别与数据格式2、索引图像10三、图像类别与数据格式3、灰度图像11三、图像类别与数据格式4、二值图像图像类型之间的转换G=im2bw(I,T)该函数的功能就是将亮度图像I转换为一幅二值图像G。在亮度图像中,亮度值小于T的像素点全部转换为二值图像中值为0的像素点;在亮度图像中,亮度值大于T的像素点全部转换为二值图像中值为1的像素点。该函数规定T的取值必须在0-1内。首先MATLAB会将亮度图像的值I归一化到[0,1]间,再进行转换。彩色图像到灰度图像的转换G=rgb2gray(I)该函数将彩色图像数组I转换为灰度图像G。14四、图像显示Matlab的图像显示函数主要有:imshow、colorbar和subimage三个。15四、图像显示1、imshow(I,n)显示灰度级为n的图像,n缺省为256。【例】按256灰度级显示I=imread('moon.tif');imshow(I,256)colorbar05010015020025016四、图像显示【例】按8灰度级显示I=imread('moon.tif');imshow(I,8)colorbar05010015020025017四、图像显示2、imshow(I,[low,high])以灰度范围[low,high]显示图像,如果不知道灰度范围,可以用imshow(I,[])显示。【例】按最大灰度范围显示I=imread('moon.tif');imshow(I,[])colorbar05010015020025018四、图像显示【例】按指定灰度范围显示I=imread('moon.tif');imshow(I,[64,128])colorbar70809010011012019四、图像显示3、imshow(BW)显示二值图像。【例】双精度灰度图像bw1=zeros(100,100);bw1(2:2:98,2:2:98)=1;imshow(bw1);20四、图像显示【例】8位的灰度图像bw1=zeros(100,100);bw1(2:2:98,2:2:98)=1;bw2=uint8(bw1);imshow(bw2,[]);colorbar00.10.20.30.40.50.60.70.80.9121四、图像显示【例】显示二值图像BW=imread('circles.tif');imshow(BW);22四、图像显示【例】取反显示二值图像BW=imread('circles.tif');imshow(~BW);23四、图像显示【例】显示二值图像clfBW=imread('circles.tif');imshow(BW,[100;001]);24四、图像显示4、imshow(X,MAP)显示索引图像,X为数据图像矩阵,MAP为调色板。【例】显示索引图像[X,MAP]=imread('canoe.tif');imshow(X,MAP);colorbar5010015020025025四、图像显示【例】显示伪彩色图像I=imread('moon.tif');imshow(I,jet(256))colorbar5010015020025026四、图像显示5、imshow(RGB)显示真彩色图像。【例】rgb=imread('flowers.tif');imshow(rgb);27四、图像显示6、imshowfilename直接显示图像。【例】直接显示图像imshow('moon.tif');I=getimage;moon.tif28四、图像显示7、subimage多图显示多个调色板的图像。【例】loadtrees;[x2,map2]=imread('forest.tif');subplot(2,1,1),subimage(X,map);colorbarsubplot(2,1,2),subimage(x2,map2);colorbar29四、图像显示50100150200250300350501001502002505010015020025050100150200250300350400501001502002503005010015020025030四、图像显示【例】不用专用函数显示多图loadtrees;[x2,map2]=imread('forest.tif');subplot(2,1,1),imshow(x2,map2);colorbarsubplot(2,1,2),imshow(X,map);colorbar31四、图像显示5010015020025032五、保存图像1、imwrite函数imwrite(I,'文件名','文件格式')-保存无调色板的图像imwrite(X,MAP,'文件名','文件格式')-保存有调色板的图像imwrite(...,'文件名')-文件名中含格式imwrite(...,'参数','值')-指定保存参数文件格式:bmp、jpg、pcx、tif。33五、保存图像【例】将tif图像保存为jpg图像[x,map]=imread('canoe.tif');imwrite(x,map,'canoe.jpg','JPG','Quality',75)图像的保存imwrite语句example:imwrite(f,‘filename’);34数字图像读取imfinfo('1.jpg')%显示图象文件1.jpg的属性读一幅图象(灰度值图象或彩色图象),研究其图象参数A=imread('1.jpg');%读图象1.jpg,并将像素值阵列赋给矩阵Aimshow(A);%显示图象AA↙%显示图象A的像素值(若图象过大,显示时间就会过长,按ctrl+C终止)whos↙%显示内存中各变量的类型,包括A35图像的灰度直方图a=imread('1.jpg');imshow(a);figure,imhist(a,64);%作b的灰度直方图,64可改为128,256等36图像对比度增强I=imread('pout.tif');J=imadjust(I,[0.30.7],[]);imshow(I),figure,imshow(J)J=imadjust(I,[low_inhigh_in],[low_outhigh_out])返回图象I经过直方图调整后的图象J,[low_inhigh_in]为图象中要变换的灰度范围,[low_outhigh_out]指定了变换的灰度范围。37人为加噪声I=imread('eight.tif');J1=imnoise(I,'gaussian',0,0.02);J2=imnoise(I,'salt&pepper',0.02);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('加椒盐噪声');subplot(2,2,4),imshow(J3),title('加乘性噪声')其中J=imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。参数type和parameters用于确定噪声的类型和相应的参数。函数subplot,作用就是将多幅图像显示再同一幅图像显示对话框中。其语法格式为:subplot(m,n,p)其作用就是将一个图像显示对话框分成m行n列,并显示第p幅图像。38人为加噪声%例图像加噪声再通过多次相加求平均的方法祛除噪声[I,M]=imread('eight.tif');J=imnoise(I,'gaussian',0,0.5);subplot(1,2,1),imshow(I,M),title('原图像');subplot(1,2,2),imshow(J,M),title('加噪声后图像');k=zeros(242,308);fori=1:100J=imnoise(I,'gaussian',0,0.02);J1=im2double(J);k=k+J1;Endk=k./100;%求图像的平均figure;imshow(k),title('相加求平均后的图像');39图像差值放大I=imread('1.jpg');J=imresize(I,10);imshow(I),title('原图像')figure,imshow(J),title('放大后的图像');B=imresize(A,m)返回原图A的m倍放大的图像(m小于1时效果是缩小)。40图像旋转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。41傅里叶变换loadimdemossaturn2imshow(saturn2);B=fftshift(fft2(saturn2));figure,imshow(log(abs(B)),[],'notruesize');B=fft2(I)返回图象I的二维fft变换矩阵,输入图象I和输出图象B大小相同。

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功