数字图像处理课程设计--基于Matlab的数字图像处理.docx_第1页
数字图像处理课程设计--基于Matlab的数字图像处理.docx_第2页
数字图像处理课程设计--基于Matlab的数字图像处理.docx_第3页
数字图像处理课程设计--基于Matlab的数字图像处理.docx_第4页
数字图像处理课程设计--基于Matlab的数字图像处理.docx_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字图像处理课程设计基于Matlab的数字图像处理 图像的运算院系 信息技术学院 专业班级 电气6班 学号 201107111282 姓名 何英娜 指导教师 章瑞平 课程设计时间 2012年11月 目录一、摘要3二、 图像代数运算1、1 图像的加法运算41、2 图像的减法运算41、3 图像的除法运算41、4 绝对差值运算71、 5 图像的求补运算7三、图像的几何运算2、1 图像插值72、2 图像的旋转82、3图像的缩放92、4图像的投影变换102、4图像的剪切11四、课程设计总结与体会13五、参考文献14摘要图像运算涵盖程序设计、图像点运算、代数运算、几何运算等多种运算;设计目的和任务:1、熟悉图像点运算、代数运算、几何运算的基本定义和常见方法;2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法3、掌握在MATLAB中进行插值的方法4、运用MATLAB语言进行图像的插值缩放和插值旋转5、学会运用图像的投影变换和图像的剪切6、进一步熟悉了解MATLAB语言的应用,将数字图像处理更好的应用于实际7、通过各类算法加强图像各种属性、一、 图像的几何运算何运算图像代数运算是指对两幅或两幅以上输入图像对应的像素逐个进行和差积商运算以产生增强效果的图像。图像运算是一种比较简单有效的增强处理手段是图像处理中常用方法。四种图像处理代数运算的数学表达式如下:C(x,y)=A(x,y)+B(x,y)C(x,y)=A(x,y)-B(x,y)C(x,y)=A(x,y)*B(x,y)C(x,y)=A(x,y)/B(x,y)1图像加法运算一般用于多幅图像求平均效果,以便有效降低具有叠加性的随机噪声,在matlab中imadd用于图像相加,其调用格式为z=imadd(X,Y);程序演示如下: I=imread(rice.png);subplot(2,2,1),imshow(I),title(原图像1);J=imread(cameraman.tif);subplot(2,2,2),imshow(J),title(原图像2);K=imadd(I,J,uint16);subplot(2,2,3),imshow(K,),title(相加后图像);2、图像减法运算也称差分运算,是用于检测图像变化及运动物体的方法;用imsubtract函数实现。图像乘法运算可以实现掩膜操作,已屏蔽图像某些部分,乘以常数被称为缩放,以显示不同明暗效果,应用函数为immultiply。图像除法运算也成比例变换,运用函数imdivide,一般对图像进行归一化处理;再进行乘除操作时一般使用double类型进行运算,immultiply(X,Y)可将对应像素值分别进行相乘,该函数可对每个像素值进行平方处理,为非线性操作,可使高亮度区对比度进一步增强,低亮度区对比度进一步减弱;程序演示1:图像加减乘除运算I = imread(moon.tif);J=imadd(I, 50);subplot(1,5,1), imshow(I);title(原图像);subplot(1,5,2), imshow(J);title(加法运算后图像);J1=imsubtract(I, 50);subplot(153),imshow(J1);title(减法运算图像);J2= immultiply(I,2);subplot(154),imshow(J2);title(乘法运算图像);J3= imdivide(I,2);subplot(155),imshow(J3),title(除法运算图像)图片效果:直方图操作能有效地用于图像增强。除了提供有用的图像统计资料外,直方图固有的信息在其他图像处理应用中也是非常有用的,直方图是图像的最基本的统计特征,它反映的是图像的灰度值的分布情况。直方图均衡化的目的是使图像在整个灰度值动态变化范围内的分布均匀化,改善图像的亮度分布状态,增强图像的视觉效果。灰度直方图是图像预处理中涉及最广泛的基本概念之一。图像的直方图事实上就是图像的亮度分布的概率密度函数,是一幅图像的所有象素集合的最基本的统计规律。直方图反映了图像的明暗分布规律,可以通过图像变换进行直方图调整,获得较好的视觉效果程序演示2:X=imread(pout.tif);X=im2double(X);Z=immultiply(X,X);imshow(X),title(原始图像),figure,imhist(X),title(原始图像灰度直方图);figure,imshow(Z),title(平方后图像),figure,imhist(Z),title(平方后图像灰度直方图)图片演示效果图如下,可以明显看出亮度区域被展开,暗区域被进一步压缩。 3、图像绝对差值运算运用函数imabsdiff实现两幅图像的绝对差值运算,图像的类型应该相同,即把相同类型相同长度的数组的对应位分别做减法,返回结果是每一位差的绝对值,即返回类型相同;图像求补运算运用函数imcomplement,适用于各种图像格式,取补操作是对每个像素值都取补,即用像素类型最大值减去像素值,得到最终结果,用于将目标与背景调换和对相片底片图像进行取补操作可得到真实景象。程序演示如下:I=imread(cameraman.tif);subplot(131),imshow(I),title(原图像);J=uint8(filter2(fspecial(gaussian),I);K=imabsdiff(I,J);subplot(132),imshow(K,),title(绝对差值后图像);L=imcomplement(I);subplot(133),imshow(L),title(图像求反后)图片效果:二、 图像几何运算几何运算可改变图像中各物体之间的空间关系。这种运算可以被看成是将(各)物体在图像内移动。一个几何运算需要两个独立的算法。首先,需要一个算法来定义空间变换本身,用它来描述每个像素如何从其初始位置“移动”到终止位置,即每个像素的“运动”。同时,还需要一个用于灰度插值的算法,这是因为,在一般情况下,输入图像的位置坐标(x,y)为整数,而输出图像的位置坐标为非整数,反过来也如此。因此插值就是对变换之后的整数坐标位置的像素值进行估计。l 1图像插值,matlab提供了三种差值方法:1最邻近差值是最简便的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最临近的采样点的值。最近邻插值是工具箱函数默认使用的插值方法f(x)=f(xk)1/2(xk-1+xk)x1/2(xk+xk+1)2双线性插值,的输出像素值是它在输入图像中22领域采样点的平均值,它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。3双三次差值,核为三次函数,其插值邻域的大小为44。它的插值效果比较好,但相应的计算量也比较大。l 图像噪声按噪声和信号之间关系分为乘性噪声和加性,按其与图像之间的相关性分为无关噪声和相关噪声;为图像添加噪声函数调用为J=imoise(I,type,parameters)程序演示:I=imread(saturn.png);subplot(131),imshow(I),title(原图像);A=imnoise(I,gaussian,0,0.02);subplot(132),imshow(A),title(加高斯噪声后图像);B=imnoise(I,speckle,0.02);subplot(133),imshow(B),title(加乘性噪声后图像);图片效果:l 图像的旋转在工具箱中的函数imrotate可用上述三种方法对图像进行插值旋转,默认的插值方法也是最邻近插值法,数字图像进行旋转时,各像素坐标将会发生变化,使得旋转之后不能正好落于整数坐标处,因此需进行差值。Imrotate的语法格式为:B=imrotate(A,angle,method)函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选用的值为nearest(最邻近法),bilinear(双线性插值),bicubic(双三次插值),默认为nearest。一般说来旋转后的图像会比原图大分别用不同插值旋转程序演示如下:I=imread(cameraman.tif);J1=imrotate(I,-45,bicubic);J2=imrotate(I,45,bilinear,crop);J3=imrotate(I,45,loose);figure,subplot(221),imshow(I),title(原图像);subplot(222),imshow(J1),title(顺旋转1);subplot(223),imshow(J2),title(逆旋转1);subplot(224),imshow(J3),title(逆旋转2)图片效果:l 图像的缩放函数调用B=imresize(A,m,method)这里参数method用于指定插值的方法,可选用的值为nearest(最邻近法),bilinear(双线性插值),bicubic(双三次插值),默认为nearest,通过不同放大缩小会改变图片的清晰度。程序演示如下:I=imread(kids.tif);m,n=size(I);J1=imresize(I,0.2);J2=imresize(I,5,nearest);J3=imresize(I,8*m 8*n,bilinear);figure, imshow(I),title();,imshow(J1);,imshow(J2);,imshow(J3)图片效果:l 图像的投影变换投影变换是将图像像素点的坐标变换成另一种像素点的坐标的过程,其调用函数为maketform,imtransform,程序演示:J=imread(lena1.tiff);T=maketform(affine,.5 0 0;.5 2 0;0 0 1);I1=imtransform(J,T);I2=size(J);I3=zeros(I2(1)*2,I2(2)*0.5+I2(2)*0.5);for i=1:I2(1) for j=1:I2(2) I3(2*i,uint8(i*0.5+j*0.5)=J(i,j); endendI3=uint8(I3);subplot(131);imshow(J);title(原图像)subplot(132);imshow(I1);title(结构变换后图像);subplot(133);imshow(I3);title(空间变换后图像)图片显示效果:l 图像的裁剪对于要处理图像,有时只关心一部分图像,所以需对整个图像进行处理,matlab中imcrop函数对图像进行剪切处理,可以大大提高处理效率。程序演示如下:I=imread(circuit.tif);I2 = imcrop(I,75 68 130 112);figure,imshow(I);title(原图像);figure,imshow(I2);title(剪切后图像)程序演示效果图:课程设计总结与体会通过本次课程设计,对数字图像处理有了更深一步的了解,学到了更多的东西;并且通过多次实验探究对matlab能更好地运用,并且对数字图像处理更感兴趣。通过实验了解数字图像处理要采用如此多的算法,而且它包括内容如此之丰富。之前只是对图像运算很浅的认识,只运用了其中一部分,通过这次集中实验把图像运算的基本类型有了更细致了解。现实生活中很对情况下需对图像进行处理,通过多次函数实现对图像进行变换修改,以使图片达到我们想要的效果,更好地运用于生活。通过图像的加减乘除运算,可以轻松的处理图片的亮度变换,学会了函数的调用处理,通过加法操作可以降低图像中的随机噪声,也可以为图片增加亮度,增加说明信息等很有意思。以前对乘除应用很少,通过这次设计进一步熟练了。学会了对图像求补操作和绝对差值,其在现实生活中应用也是很多如照片底片的求反而得到真实图片。而图像的几何运算更是丰富,可以根据我们不同的需要对图像进行各式各样的变换,大小形状位置等等通过不同函数都可以达到想要的效果。对图像的剪裁和投影变换进一步运用了解。通过学习设计体验到了程序运行结果的快乐,同时当程序运行失败时的失落,锻炼自己勇于发现错误,并耐心修改。但同时发现很多不足和自己知识的匮乏,了解的总是那么少。课程设计中要搜集好多资料并且一定要有耐心和学习精神。数字图像处理课程包括有那么多知识需要去学习,需要自己勤于动手动脑,多练习。学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论