ImageVerifierCode 换一换
格式:DOCX , 页数:61 ,大小:9.38MB ,
资源ID:10305723      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10305723.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Matlab图像显示方法.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Matlab图像显示方法.docx

1、Matlab图像显示方法实验一 Matlab图像显示方法一、实验目的 1.了解 Matlab的基本功能及操作方法 2.练习图像读写和显示函数的使用方法 3.掌握 Matlab支持的五类图像的显示方法二、实验内容 1.图像的读写 A)图像读 RGB = imread(ngc6543a.jpg); B)图像写先从一个.mat文件中载入一幅图像,然后利用图像写函数 imwrite,创建一个.bmp文件,并将图像存入其中。 load clown whos imwrite(X,map,clown.bmp) C)图像文件格式转换 bitmap = imread(clown.bmp,bmp); imwrit

2、e(bitmap,clown.png,png); 2.图像显示 A) 二进制图像的显示 BW1=zeros(20,20); %创建仅包含 0/1的双精度图像 BW1(2:2:18,2:2:18)=1; imshow(BW1,notruesize); whos BW2=uint8(BW1); figure,imshow(BW2,notruesize) BW3=BW2=0; %逻辑标志置为 on figure,imshow(BW3,notruesize) whos BW=imread(circles.tif); imshow(BW); figure,imshow(BW); figure,imsho

3、w(BW,1 0 0;0 0 1); 图1.1-1:BW1图像 图1.1-2:BW2图像图1.1-3:BW图像 图1.1-4:BW取反图 图1.1-5: BW变换像B)灰度图像的显示 I=imread(testpat1.tif); J=filter2(1 2;-1 -2,I); imshow(I) figure,imshow(J,) 图1.2-1:I(testpat1.tif)图像 图1.2-2 : I灰度变换后的J图像C) 索引图像的显示 load clown %装载一幅图像 imwrite(X,map,clown.bmp); %保存为 bmp文件 imshow(X) imshow(X,ma

4、p) 图1.3-1:索引图像D) RGB图像的显示 I=imread(flowers.tif); imshow(I) RGB=imread(ngc6543a.jpg); figure,imshow(RGB) imshow(I(:,:,3) % 显示第 3个颜色分量 图1.4-1:RGB图像 图1.4-2:第三颜色分量图像E) 多帧图像的显示 mri=uint8(zeros(128,128,1,27); % 27帧文件 mri.tif初始化 for frame=1:27 mri(:,:,:,frame),map=imread(mri.tif,frame); % 读入每一帧 end imshow(

5、mri(:,:,:,3),map); % 显示第 3帧 figure,imshow(mri(:,:,:,6),map); % 显示第 6帧 figure,imshow(mri(:,:,:,10),map); % 显示第 10帧 figure,imshow(mri(:,:,:,20),map); % 显示第 20帧 图1.5-1:第 3帧 图1.5-1:第 6帧 图1.5-1:第 10帧 图1.5-1:第 20帧F)显示多幅图像 X1,map1=imread(forest.tif); X2,map2=imread(trees.tif); subplot(1,2,1),imshow(X1,map1

6、) subplot(1,2,2),imshow(X2,map2) subplot(1,2,1),subimage(X1,map1) subplot(1,2,2),subimage(X2,map2) 图1.5-1:多幅图像显示三、思考题: 1.图像显示时,若不带参数notruesize,显示效果如何? 2.如何显示 RGB图像的某一个颜色分量? 3.如何显示多帧图像的所有帧?如何根据多帧图像创建电影片段?实验二 图像运算 一、实验目的 1.熟悉图像点运算和代数运算的实现方法 2.了解图像几何运算的简单应用 3.了解图像的邻域操作二、实验内容 1. 图像点运算A)读入图像rice.tif,通过图像

7、点运算改变对比度。 rice=imread(rice.tif); subplot(131),imshow(rice) I=double(rice); %转换为双精度类型 J=I*0.43+60; rice2=uint8(J); %转换为 uint8 subplot(132),imshow(rice2) J=I*1.5-60; rice3=uint8(J); %转换为 uint8 subplot(133),imshow(rice3) 图2.1-1:通过图像点运算改变对比度前后的图像2.图像的代数运算 A)图像加法运算 I=imread(rice.tif); imshow(I) J=imread(

8、cameraman.tif); figure,imshow(J) K=imadd(I,J); figure,imshow(K) K2=imadd(I,J,uint16); figure,imshow(K2,) RGB=imread(flowers.tif); RGB2=imadd(RGB,50); imshow(RGB) figure,imshow(RGB2) RGB3=imadd(RGB,100); figure,imshow(RGB3) 图2.2-1:图像I 图2.2-2:图像J 图2.2-3:I与J相加图像K图2.2-4:图像RGB 图2.2-5:图像RGB2 图2.2-6:图像RGB3

9、B)图像减法运算 I=imread(rice.tif); imshow(I) background = imopen(I,strel(disk,15); %估计背景图像 figure, imshow(background); I2=imsubtract(I,background); %从原始图像中减去背景图像 figure, imshow(I2) 图2.3-1:图像I 图2.3-2:背景图像 图2.3-3:减去背景后图像C)图像乘法运算 I=imread(moon.tif); J=immultiply(I,1.2); K=immultiply(I,0.5); imshow(I) figure,

10、imshow(J) figure,imshow(K) 图2.4-1:图像I 图2.4-2:图像J 图2.4-3:图像K3.图像的几何运算 A)改变图像的大小读入图像ic.tif,改变图像大小,分别将原图像放大 1.5倍和缩小 0.5倍。 I=imread(ic.tif); J=imresize(I,1.25); K=imresize(I,0.8); imshow(I) figure,imshow(J) figure,imshow(K) Y=imresize(I,100,150); figure,imshow(Y) 图2.5-1:图像I 图2.5-2:图像J 图2.5-3:图像K 图2.5-4:

11、图像YB)旋转一幅图像将上述图像顺时针和逆时针旋转任意角度,观察显示效果。 I=imread(ic.tif); J=imrotate(I,30,bilinear); J1=imrotate(I,30,bilinear,crop); imshow(I) figure,imshow(J) figure,imshow(J1) J2=imrotate(I,-15,bilinear); figure,imshow(J2) 图2.6-1:图像I 图2.6-2:图像J 图2.6-3:图像J1 图2.6-4:图像J2 C)图像剪切通过交互式操作,从一幅图像中剪切一个矩形区域。 I=imread(ic.tif)

12、; imshow(I); I1=imcrop; figure,imshow(I1) I2=imcrop(I,30 60 120 160); figure,imshow(I2) 图2.7-1:图像I 图2.7-2:图像I4. 图像的邻域操作读入图像tire.tif,分别使用函数 nlfilter和 blkproc对图像进行滑动邻域操作和分离邻域操作。 I=imread(tire.tif); f=inline(max(x(:); %构造复合函数 I2=nlfilter(I,3 3,f); %滑动邻域操作 imshow(I) figure,imshow(I2) I=imread(tire.tif);

13、 f=inline(uint8(round(mean2(x)*ones(size(x); %构造复合函数 I2=blkproc(I,8 8,f); %滑动邻域操作 imshow(I) figure,imshow(I2) 图2.8-1:图像I 图2.8-1:图像I2图2.7-1:滑动邻域操作实验三 图像变换与滤波器设计 一、实验目的 1.了解傅立叶变换、离散余弦变换及 Radon变换在图像处理中的应用 2.了解 Matlab线性滤波器的设计方法二、实验内容 1.傅立叶变换 A)绘制一个二值图像矩阵,并将其傅立叶函数可视化。 f=zeros(30,30); f(5:24,13:17)=1; ims

14、how(f,notruesize) F=fft2(f); F2=log(abs(F); figure,imshow(F2,-1 5,notruesize);colormap(jet); F=fft2(f,256,256); %零填充为 256256矩阵 figure,imshow(log(abs(F),-1 5,notruesize);colormap(jet); F2=fftshift(F); %将图像频谱中心由矩阵原点移至矩阵中心 figure,imshow(log(abs(F2),-1 5,notruesize);colormap(jet); 图3.1-1:图像f 图3.1-2:傅里叶变

15、换图像F图3.1-3:零填充图像 图3.1-4:频谱中心移至矩阵中心图像B) 利用傅立叶变换分析两幅图像的相关性,定位图像特征。读入图像 text.tif抽取其中的字母a。 bw=imread(text.tif); a=bw(59:71,81:91); imshow(bw); figure,imshow(a); C=real(ifft2(fft2(bw).*fft2(rot90(a,2),256,256);%求相关性 figure,imshow(C,); thresh=max(C(:); figure,imshow(Cthresh-10) figure,imshow(Cthresh-15) 图

16、3.1-1:原text图像 图3.1-2:字母图像a图3.1-3:图像的相关性对比2.离散余弦变换(DCT) A) 使用 dct2对图像 autumn.tif进行 DCT变换。 RGB=imread(autumn.tif); imshow(RGB) I=rgb2gray(RGB); %转换为灰度图像 figure,imshow(I) J=dct2(I); figure,imshow(log(abs(J),),colormap(jet(64);colorbar; 图3.2-1:图像RGB 图3.2-2:转换为灰度图像图3.2-1:颜色块控制条B) 将上述 DCT变换结果中绝对值小于 10的系数舍

17、弃,使用 idct2重构图像并与原图像比较。 RGB=imread(autumn.tif); I=rgb2gray(RGB); %转换为灰度图像 J=dct2(I); figure,imshow(I) K=idct2(J); figure,imshow(K,0 255) J(abs(J)10)=0; %舍弃系数 K2=idct2(J); figure,imshow(K2,0 255) 图3.3-1:图像I 图3.3-2:图像K 图3.3-3:图像K2C) 利用 DCT变换进行图像压缩。 I=imread(cameraman.tif); I=im2double(I); T=dctmtx(8);

18、B=blkproc(I,8,8,P1*x*P2,T,T); mask=1 1 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; B2=blkproc(B,8 8,P1.*x,mask); I2=blkproc(B2,8 8,P1*x*P2,T,T); imshow(I) figure,imshow(I2) 图3.4-1:图像I 图3.4-2:压缩后图像3. Radon变换使用 Radon逆变换重建

19、图像。P=phantom(256); %创建 256灰度级大脑图 imshow(P) theta1=0:10:170;R1,xp=radon(P,theta1); %18个投影 theta2=0:5:175; R2,xp=radon(P,theta2); %36个投影 theta3=0:2:178; R3,xp=radon(P,theta3); %90个投影 figure,imagesc(theta3,xp,R3);colormap(hot);colorbar % 使用逆变换重构图像 I1=iradon(R1,10); %用 R1重构图像 I2=iradon(R2,5); %用 R2重构图像

20、I3=iradon(R3,2); %用 R3重构图像 figure,imshow(I1) figure,imshow(I2) figure,imshow(I3) 图3.5-1:256灰度级大脑图 图3.5-2:颜色块控制条图3.5-3:18个投影构图 图3.5-4:36个投影构图 图3.5-5:90个投影构图4. Matlab线形滤波器设计采用频率变换方式,通过一维最优波纹 FIR滤波器创建二维 FIR滤波器(p96)。 b=remez(10,0 0.4 0.6 1,1 1 0 0); %阶次,频率向量 ,对应的理想幅频响应 h=ftrans2(b); H,w=freqz(b,1,64,who

21、le); colormap(jet(64) plot(w/pi-1,fftshift(abs(H); %使 x轴取值 0处对应曲线中心 figure,freqz2(h,32 32) 图3.6-1:一维FIR滤波器 图3.6-2:二维FIR滤波器实验四 形态学操作与空间变换 一、实验目的 1.了解膨胀和腐蚀的 Matlab实现方法 2.掌握图像膨胀、腐蚀、开启、闭合等形态学操作函数的使用方法 3.了解二进制图像的形态学应用 4.了解空间变换函数及图像匹配方法二、实验内容 1.图像膨胀 A)对包含矩形对象的二进制图像进行膨胀操作。 BW=zeros(9,10); BW(4:6,4:7)=1; im

22、show(BW,notruesize) se=strel(square,3); %正方形结构元素 BW2=imdilate(BW,se); figure,imshow(BW2,notruesize) 图4.1-1:BW 图4.1-2:BW2B)改变上述结构元素类型(如:line, diamond, disk等),重新进行膨胀操作。 图4.2-1:line类型 图4.2-2:disk类型 图4.2-3:diamond类型C)对图像text.tif进行上述操作,观察不同结构元素膨胀的效果。 BW3=imread(text.tif); imshow(BW3) se2=strel(line,11,90

23、); %线型结构元素 BW4=imdilate(BW3,se2); figure,imshow(BW4) 图4.3-1:line类型 图4.3-2:disk类型 图4.3-3:diamond类型 图4.3-4:square类型2.图像腐蚀 A)对图像circbw.tif进行腐蚀操作。 BW1=imread(circbw.tif); se=strel(arbitrary,eye(5); BW2=imerode(BW1,se); imshow(BW1) figure,imshow(BW2) 图4.4-1:BW1 图4.4-2:BW2B) 对图像text.tif进行腐蚀操作。 BW=imread(t

24、ext.tif); se=strel(line,11,90); BW2=imerode(BW3,se); imshow(BW) figure,imshow(BW2) 图4.5-1:BW 图4.5-2:BW23.膨胀与腐蚀的综合使用 A) 从原始图像circbw.tif中删除电流线 ,仅保留芯片对象。方法一:先腐蚀(imerode),再膨胀(imdilate); BW1=imread(circbw.tif); imshow(BW1) se=strel(rectangle,40 30); %选择适当大小的矩形结构元素 BW2=imerode(BW1,se); %先腐蚀,删除较细的直线 figure

25、,imshow(BW2) BW3=imdilate(BW2,se); %再膨胀,恢复矩形的大小 figure,imshow(BW3)图4.6-1:BW1 图4.6-2:BW2 图4.6-3:BW3方法二:使用形态开启函数(imopen)。 BW1=imread(circbw.tif); imshow(BW1) se=strel(rectangle,40 30); BW2=imopen(BW1,se); %开启操作 figure,imshow(BW2) 图4.7-1:BW1 图4.7-2:大小40 30B) 改变结构元素的大小,重新进行开启操作,观察处理结果。 se=strel(rectangl

26、e,20 10); se=strel(rectangle,50 40); 图4.8-1:大小20 10 图4.8-2:大小50 40C) 置结构元素大小为4 3,同时观察形态开启(imopen)与闭合(imclose)的效果,总结形态开启与闭合在图像处理中的作用。 I=imread(circbw.tif); imshow(I) se=strel(rectangle,4 3); I1=imopen(I,se); %开启操作 I2=imclose(I,se); %闭合操作 figure,imshow(I1) figure,imshow(I2) 图4.9-1:I 图4.9-1:I1 图4.9-1:I

27、24. 高帽与低帽变换 A) 读入图像pearlite.tif,分别显示其高帽变换与低帽变换结果,并与原图像较。(设 se=strel(disk,5);)。 I=imread(pearlite.tif); subplot(221),imshow(I) se=strel(disk,5); J=imtophat(I,se); subplot(222),imshow(J) K=imbothat(I,se); subplot(223),imshow(K) L=imsubtract(imadd(J,I),K); subplot(224),imshow(L) 图4.10-1:高帽与低帽变换5.图像极值的处

28、理方法 A)对于下图所示的图像矩阵 A,利用函数 imregionalmax寻找其局部极大值 A=10 10 10 10 10 10 10 10 10 10; 10 13 13 13 10 10 11 10 11 10; 10 13 13 13 10 10 10 11 10 10; 10 13 13 13 10 10 11 10 11 10; 10 10 10 10 10 10 10 10 10 10; 10 11 10 10 10 18 18 18 10 10; 10 10 10 11 10 18 18 18 10 10; 10 10 11 10 10 18 18 18 10 10; 10

29、11 10 11 10 10 10 10 10 10; 10 10 10 10 10 10 11 10 10 10; B=imregionalmax(A) 结果如下:B) 利用函数 imextendedmax寻找像素值大于其邻域像素值 2个单位的局部极值。C=imextendedmax(A,2) 结果如下:6. 创建一幅图像 ,求其距离矩阵。 bw=zeros(5,5); bw(2,2)=1;bw(4,4)=1; D=bwdist(bw) center1=-10; center2=-center1; dist=sqrt(2*(2*center1)2); radius=dist/2*1.4; lims=floor(cen

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1