matlab图像处理

实验目的及要求

(一)实验目的 1、 掌握MATLAB中常用的图像处理语句; 2、 掌握图像的读入,信息查询以及显示; 3、 掌握采用不同的模板对图像进行滤波; 4、 掌握图像显示的调用格式; a (二)实验要求 1、 练习MATLAB中常用的图像处理语句; 2、 练习图像的读入,信息查询以及显示; 3、 练习采用不同的模板对图像进行滤波; 4、 练习图像显示的调用格式; 二、实验设备(环境)及要求

  1. 实验内容与步骤
  2. 练习MATLAB中常用的图像处理语句

Matlab中为用户提供了一些特殊的函数,用于从图像格式的文件中读写图像。其中:a、读取图形文件格式的图像需要用imread函数; b、写入一个图形文件格式的图像需要调用imwrite函数; c、获取图形文件格式的图像的信息需要调用imfinfo、ind2rgb函数; d、以Mat文件加载或保存矩阵数据用load、save函数; e、显示加载到Matlab中的图像用image、imagesc. 此外,Matlab工具箱中还提供了图像转化函数,可以对图像类型进行转化,以达到某些图像处理工作的要求。 下面,我们将分别对这些常用的图像处理语句在Matlab中进行练习,并观察其输出结果: (1)在Matlab中读入一个灰度图像,并利用相关函数进行图像处理,并显示结果。 Matlab程序如下: I=imread('lena.bmp'); %读入原图像文件 imshow(I) %图像文件的显示 imwrite(I,'lena1.bmp'); %将原图像重命名为lena1.bmp,并保存图像 figure,imhist(I,225) %显示原图像的直方图,225为指定的灰度级数目 X=grayslice(I,64); %将原图像I均匀量化成64个等级,然后转化成索引色图像X figure,imshow(X,pink(64)) %显示索引色图像,pink(64)产生一个64×3的调色板,色度为粉红 运行结果如下: aaa

  1. 练习图像的读入,信息查询以及显示

Matlab程序如下: load trees image(50,80,X) %显示加载到Matlab中的图像 imwrite(X,map,'trees.tif'); %将图像以tif格式保存 inf=imfinfo('trees.tif') %图像文件信息的查询 BW=im2bw(X,map,0.4); %将索引图像转化成二值图像 figure,imshow(X,map) %显示图像 figure,imshow(BW) 运行结果如下: aaa %显示从Matlab中加载的图像文件的信息 inf = Filename: 'trees.tif' FileModDate: '18-六月-2010 19:41:48' FileSize: 75764 Format: 'tif' FormatVersion: [] Width: 350 Height: 258 BitDepth: 8 ColorType: 'indexed' FormatSignature: [73 73 42 0] ByteOrder: 'little-endian' NewSubFileType: 0 BitsPerSample: 8 Compression: 'PackBits' PhotometricInterpretation: 'RGB Palette' StripOffsets: [12x1 double] SamplesPerPixel: 1 RowsPerStrip: 23 StripByteCounts: [12x1 double] XResolution: 72 YResolution: 72 ResolutionUnit: 'Inch' Colormap: [256x3 double] PlanarConfiguration: 'Chunky' TileWidth: [] TileLength: [] TileOffsets: [] TileByteCounts: [] Orientation: 1 FillOrder: 1 GrayResponseUnit: 0.0100 MaxSampleValue: 255 MinSampleValue: 0 Thresholding: 1

  1. 练习采用不同的模板对图像进行滤波

Matlab程序如下: I=imread('rice.png'); %读入图像文件rice.png J=filter2([1 3;-1 -3],I); %用模板[1 3;-1 -3]对图像滤波 K=filter2([-3 -1;1 3],I); %用模板[-3 -1;1 3]对图像滤波 imshow(I) %原图像显示 figure,imshow(J,[]) %由于波波后图像灰度范围与滤波之前不同,所以用[]作为参考 figure,imshow(K,[]) %用另一个模板得到的滤波后的图像显示 运行结果如下: aaa

  1. 练习图像显示的调用格式

Matlab中不同类型的图像显示方法也不同。从1和2的练习中,我们可以看到,在Matlab中,可以用imshow(I)这种调用格式显示灰度图像,用image(x,y,X)显示索引图像,用imshow(RGB)显示真彩色图像等。在此,我们对其中的部分图像显示的调用格式进行练习。 Matlab程序如下: %在Matlab中显示多幅索引图像 [X1,map1]=imread('clown.tif'); %读入原图像 [X2,map2]=imread('forest.tif'); [X3,map3]=imread('lena.tif'); %imshow函数显示图像(作为与subimage函数显示的图像的参照,利于比较分析) subplot(1,3,1),imshow(X1,map1) subplot(1,3,2),imshow(X2,map2) subplot(1,3,3),imshow(X3,map3) figure(2); %subimage函数与subplot结合使用,在一个图形中显示多个图像 subplot(1,3,1),subimage(X1,map1) subplot(1,3,2),subimage(X2,map2) subplot(1,3,3),subimage(X3,map3) 运行结果如下: a a a 由图可知,在imshow和subimage函数分别与subplot函数结合显示图像的过程中,比较最后结果,除了最后读入的lena图像的显示结果是一样的,其他图像均有偏差,且subimage函数所显示的输出图像是正确的,而imshow函数在多图像的显示中出现了失真。我们还可以两个图像的显示,四个图像的显示等多图显示的过程中,对imshow和subimage函数进行比较,得到的结果也是一样的。 因此,我们可以推测,subimage函数与subplot函数结合使用,是在多图显示中不出现较大失真的较好的且可行的方法。当然,这只是一种推测,要得出结论,还需进一步验证。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值