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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

图像运算实验报告Word文档格式.docx

1、2、软件环境:MATLAB R2013b软件三、实验内容利用Matlab对图像进行点运算、加法运算、减法运算、乘法运算、除法运算、改变图像的大小、旋转图像、图像的剪切、图像的邻域操作。四、实验结果与分析 (包括实验原理、数据的准备、运行过程分析、源程序(代码)、图形图象界面等)注:本项可以增加页数例1 图像点运算skull=imread(skull.tif); %读取图像 subplot(131),imshow(skull) %生成一行三列三块区域,并在第一块区域绘制图像 I=double(skull); %转换为双精度类型 J=I*0.43+60; %利用该函数对输出图像进行压缩,使其对比度

2、减小,图像变暗skull2=uint8(J); %转换为uint8 subplot(132),imshow(skull2) %在第二块区域绘制图像 J=I*1.5-60; %利用该函数对输出图像进行对比度级数拓展,使其对比度增强,图像变亮 skull3=uint8(J); subplot(133),imshow(skull3) %在第三块区域绘制图像运行结果: 图1 原图像 图2 对比度减小的图像 图3 对比度增强的图像分析:1)subplot是用于将多个图像画到一个平面上的函数。subplot(m,n,p,)中的m表示m行,n表示n列,p表示从左到右的第几块区域;2)uint8表示8位无符号

3、的整型数据类型,以此方式存储的图像称作8位图像;而Matlab中数值一般采用double型的存储和运算,因此在进行本题的灰度变换运算时,应先把skull图像转化为double格式; 3)线性灰度变换函数 当a=1,b=0时,输出图像像素不发生变化;当a=1,时,输出图像所有灰度值上移或下移;当时,输出图像灰度级压缩,对比度减小,如图2所示;时,输出图像灰度级拓展,对比度增强,如图3所示; 时,输出图像暗区域变亮,亮区域变暗,图像求反。2、图像的代数运算例2 图像加法运算 %读取图像imshow(skull) %显示图像J=imread(cameraman.tiffigure,imshow(J)

4、 %显示图像I=imresize(skull,256,256); %将skull图像转换为的大小K=imadd(I,J); %对两幅图像的灰度值进行加法运算figure,imshow(K) %显示图像K2=imadd(I,J,uint16 %对两幅图像的灰度值进行加法运算,并转化为uint16figure,imshow(K2,) %显示图像RGB=imread(RGB2=imadd(RGB,50); %将图像skull与常数50相加imshow(RGB) %显示RGB图像figure,imshow(RGB2) %显示亮度增强50的RGB图像RGB3=imadd(RGB,100); %将图像sk

5、ull与常数100相加figure,imshow(RGB3) %显示亮度增强100的RGB图像 图4 skull原图像 图5 cameraman原图像 图6 两幅相加后的图像图7 转化为uint16的图像 图8 RGB原图 图9 亮度增强50后的图像图10 亮度增强100后的图像1)imadd是用于实现两图像灰度值相加的函数,imadd(I,J)中的I和J要求大小相等,由于我读取的skull图像的尺寸为,因此在进行I和J的加法运算前须利用imresize函数把skull图像转换为的大小; 2)I和J进行相加后的图像如图6所示,而在I和J相加的基础上将其转换为uint16的图像如图7所示,我们可

6、以清楚的发现图6比图7的更亮,但细节比图7的模糊,这是由于Matlab在运算后会自动将图像转换为double型,因此uint16的图像是比double型的图像更清晰; 3)imadd(RGB,50)是将一个常数50加到RGB图像上,即使图像的灰度级增强了50,如图9所示,以此类推,图10为灰度级增强了100的图像。例3 图像减法运算I=imread(imshow(I) %显示图像background=imopen(I,strel(disk,15); %估计圆盘半径为15的背景图像figure,imshow(background); %显示背景图I2=imsubtract(I,backgroun

7、d); %从原始图像中减去不均匀的背景图图11 skull原图 图12 背景图 图13 减去背景图后的图像1)imopen开运算属于形态图像处理,是先腐蚀后膨胀,可以使边界平滑,消除尖刺,断开窄小的连接,保持面积大小不变;strel是用于构建结构元素对象,imopen(I,strel(,15)就是构建圆盘半径为15的背景图,如图12所示; 2)imsubtract函数是用于两幅图像的相减运算,如图13所示,减去不均匀的部分后,图像变得更加平滑。例4 图像的乘法运算J=immultiply(I,1.2); %图像的乘法,缩放因子是1.21,增强图像的亮度K=immultiply(I,0.5);

8、%图像的乘法,缩放因子是0.51,减小图像的亮度imshow(I) %显示原图像figure,imshow(J) %显示亮度增强图像figure,imshow(K) %显示亮度减小图像图14 skull原图 图15 亮度增强后的图像 图16 亮度减小后的图像1)乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分 2)一幅图像乘以一个常数通常被称为缩放。immultiply(I,1.2),使用的缩放因数大于1,那么将增强图像的亮度,如图15所示;immultiply(I,0.5)中的因数小于1则会使图像变暗,如图16所示。例5 图像除法运算 %读取原图像J=double(I)*0.43+80; %

9、利用该函数对输出图像进行处理,是对比度减小,图像变暗J=uint8(J); %转换成uint8K=imdivide(I,J); %除法运算figure,imshow(J) %显示对比度减小的图像figure,imshow(K) %显示灰度级相除后的图片 图17 skull原图 图18 对比度减小的图片 图19 灰度级相除后的图片1)J=double(I)*0.43+80是将skull图像转换为double型再对其进行灰度变换运算,使其灰度级减小,如图18所示; 2)imdivide(I,J)要求I和J数据类型一致,因此在进行此运算时,须先将double型的J转换为uint8,两幅图像的灰度级相

10、除后的到的结果为0,1,因为其灰度级极其相近且小,肉眼无法分辨,故我们所看到的输出图像几近与纯黑色,如图19所示; 3)除法运算是用于校正成像设备的非线性影响。例6 图像的几何运算J=imresize(I,1.25); %返回图像J,其长宽是图像I的长宽的1.25倍,即放大图像K=imresize(I,0.8); %返回图像K,其长宽是图像I的长宽的0.8倍,即缩小图像imshow(I) %显示原图figure,imshow(J) %显示尺寸放大的图像figure,imshow(K) %显示尺寸减小的图像Y=imresize(I,100,150); %返回图像Y,高度为100,宽度为150fi

11、gure,imshow(Y) %显示的图像 图20 skull的原图像 图21 尺寸放大的图像 图22 尺寸减小的图像图23 1)imresize函数可改变图像输出图像的大小,J=imresize(I,1.25)为返回图像J,其长宽是图像I的长宽的1.25倍,即放大图像,如图21所示;K=imresize(I,0.8)为返回图像K,其长宽是图像I的长宽的0.8倍,即缩小图像,如图22所示; 2)Y=imresize(I,100,150)是直接指定输出图像真实的大小,即返回图像Y,高度为100,宽度为150。例7 旋转一幅图像J=imrotate(I,30,bilinear %将图像skull绕

12、图像的中心点旋转30度J1=imrotate(I,30,crop %crop:通过对旋转后的图像进行裁剪,保持旋转后输出图像J1的尺寸和输入图像skull的尺寸一样。figure,imshow(J) %显示逆时针旋转30度的图像figure,imshow(J1) %显示裁剪后的图像J2=imrotate(I,-15, %将图像顺时针旋转15度,进行双线性插值figure,imshow(J2) %显示顺时针旋转15度的图像 图24 skull的原图像 图25 逆时针旋转的图像 图26 裁剪后的图像 图27 顺时针旋转1)Imrorate(x,n)是用于对图像进行旋转的函数,其中X若为正数则表示逆

13、时针旋转,数则表示顺时针旋转;)表示逆时针旋转30度,如图25所示;其中bilinear为双线性插值,在两个方向分别进行一次线性插值;)则表示顺时针旋转15度,如图27所示;2) J1=imrotate(I,30,)中的crop是通过对旋转后的图像进行裁剪,保持旋转后输出图像J1的尺寸和输入图像skull的尺寸一样,如图26所示。例8 图像剪切%通过交互操作,从一幅图像中剪切一个矩形区域。imshow(I); %显示图像II1=imcrop; %对图像进行自由地剪切操作figure,imshow(I1) %显示图像I1I2=imcrop(I,30 60 120 160); %剪切图像I,坐标(

14、30,60)往下120*160的图像figure,imshow(I2) %显示图像I2 图28 skull的原图像 图29 手动剪切后的图像 图30 定义剪切后的图像1)imcrop用于返回图像的一个裁剪区域,但其也允许用户自己以交互方式使用鼠标选定要剪切的区域;因此如图29所示,为我们自己手动剪切的图像;I2=imcrop(I,30 60 120 160)为剪切横坐标30-60,纵坐标60-160的图像区域,如图30所示。例9 图像的领域操作 %读取原图f=inline(max(x(:) %定义一个取最大值的函数f,构造复合函数I2=nlfilter(I,3 3,f); %对图像I的每一个3

15、*3滑块应用函数f,滑动邻域操作figure,imshow(I2) %显示进行滑动邻域操作的图像uint8(round(mean2(x)*ones(size(x) %构造复合函数I2=blkproc(I,8 8,f); %对图像I的每一个8*8滑块应用函数f,分离邻域操作figure,imshow(I2) %显示分离邻域操作的图像图31 skull的原图像 图32 滑动邻域操作的图像 图33 分离邻域操作的图像1)nlfilter是对图像进行边沿操作,即进行滑动邻域操作,nlfilter(I,3 3,f)为对图像I的每一个3*3滑块应用函数f进行滑动邻域操作,如图32所示;2)blkproc是

16、实现图像的显示块操作,即分离邻域操作,blkproc(I,8 8,f)为对图像I的每一个8*8滑块应用函数f进行分离邻域操作,如图33所示;五、实验小结: (包括主要实验问题的最终结果描述、详细的收获体会,待解决的问题等)在此次实验中,由于实验内容更贴近生活应用,因此比起上学期,我们更容易领悟该程序的表达,只是在细节方面还是很容易出错,甚至不容易拐过弯来。在实验中应注意的点:1)在编写运行文件的时候要选择正确的路径,图片保存在哪里,就应该选择哪里,不然就会出现读取错误。2)显示图像中的以灰度级20显示图像的时候,因为灰度级定义得太小,导致无图像显示,这时我们可以用增大灰度级的方法,imshow(J,100);或imshow(J,0,100);显示部分图像信息.3)当用imshow显示另一图像时,MATLAB会字屏幕上用新图像替换旧图像。为保持第一幅图像并显示第二幅图像,可以用figure函数。4)在进行图像的运算时应注意保持图像的类型和大小一致5)明确每一种代数运算的意图,并学会理论联系实际,对输出图像进行分析。手写签名:

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

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