实验三图像运算.doc_第1页
实验三图像运算.doc_第2页
实验三图像运算.doc_第3页
实验三图像运算.doc_第4页
全文预览已结束

下载本文档

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

文档简介

实验三图像运算 本实验是综合性实验,涵盖Matlab程序设计、图像点运算、代数运算、几何运算等多章基本知识及其应用。一、实验目的与要求1、理解图像点运算、代数运算、几何运算的基本定义和常见方法;2、掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法;3、掌握在MATLAB中进行插值的方法4、运用MATLAB语言进行图像的插值缩放和插值旋转5、进一步熟悉了解MATLAB语言的应用。二、实验原理 点运算是通过对图像中每个像素值进行计算,改善图像显示效果的操作,也称对比度增强,对比度拉伸,灰度变换,可以表示为B(x,y)=f(A(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)C(x,y)=A(x,y)/B(x,y) 其中A(x,y)和B(x,y)为输入图像,而C(x,y)为输出图像。还可以通过适当的组合形成涉及几幅图像的复合代数运算方程。 在MATLAB中,我们可以用函数简单的得到数字图像的图像数据矩阵(即A(x,y)和B(x,y)),有了这些矩阵后我们只要适当的设计代数运算的形式并写出方程,就可以得到一个输出图像的矩阵(即C(x,y))图像相加的一个重要应用是对同一场景的多幅图像求平均值。这点被经常用来有效的降低加性随机噪声的影响。 几何运算可改变图像中各物体之间的空间关系。这种运算可以被看成是将(各)物体在图像内移动。一个几何运算需要两个独立的算法。首先,需要一个算法来定义空间变换本身,用它来描述每个像素如何从其初始位置“移动”到终止位置,即每个像素的“运动”。同时,还需要一个用于灰度插值的算法,这是因为,在一般情况下,输入图像的位置坐标(x,y)为整数,而输出图像的位置坐标为非整数,反过来也如此。因此插值就是对变换之后的整数坐标位置的像素值进行估计。MATLAB提供了一些函数实现这些功能。 插值是常用的数学运算,通常是利用曲线拟合的方法,通过离散的采样点建立一个连续函数来逼近真实的曲线,用这个重建的函数便可以求出任意位置的函数值。 最近邻插值是最简便的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最临近的采样点的值。最近邻插值是工具箱函数默认使用的插值方法,而且这种插值方法的运算量非常小。当图像中包含像素之间灰度级变化的细微结构时,最近邻插值法会在图像中产生人工的痕迹。 双线性插值法的输出像素值是它在输入图像中22领域采样点的平均值,它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。 双三次插值的插值核为三次函数,其插值邻域的大小为44。它的插值效果比较好,但相应的计算量也比较大。在对图像进行缩放、旋转等几何运算时都会涉及到插值算法的选定。1完成人为的往一幅图像中加入噪声,并通过多次相加求平均的方法消除所加入的噪声。在MATLAB中提供了给图像加入噪声的函数imnoiseimnoise的语法格式为J=imnoise(I,type)J=imnoise(I,type,parameters)其中J=imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。参数type和parameters用于确定噪声的类型和相应的参数。下面的命令是对图像eight.tif分别加入高斯噪声、椒盐噪声和乘性噪声:例3-1: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(加乘性噪声); 在MATLAB程序语言中,分号的用处为不显示程序运算中的中间结果,这在一定程度上使系统运算的效率增高,因此在不需知道中间结果的情况下,可以用分号作为一个句子的结尾,而不显示该句运算的中间结果。 代数运算中需要有若干幅带有随机噪声的图像数据,在这里我们运用MATLAB中的FOR循环语句来完成产生多幅带有噪声的图像数据及将这些图像数据进行相加运算。MATLAB中FOREND循环的用法如下:forend循环这种循环允许一组命令以固定的和预定的次数重复,循环的一般形式为:forvariable=expressionstatementsend举例如下:例3-2:%一个简单的for循环的例子。fori=1:10;y(i)=i;end;y%显示y的结果y=12345678910 为了得到最大的速度,在for循环被执行之前,应预先分配数组。例如前面所考虑的第一种情况,在for循环内每执行一次命令,向量y的维数增加1。这样就使得MATLAB每通过一次循环对y分配更多的内存,这当然要花费一定的时间。为了可以不执行这个步骤,for循环的例子应重写为:例3-3:y=zeros(1,10);fori=1:10;y(i)=i;end;y 在实际的对图像处理过程中,由于我们读出的图像是unit8型,而在MATLAB的矩阵运算中要求所有的运算变量为double型(双精度型)。因此读出的图像数据不能直接进行相加求平均,因此必须使用一个函数将图像数据转换成双精度型数据。MATLAB中提供了这样的函数:im2double函数,其语法格式为:I2=im2double(I1) 其中I1是输入的图像数据,它可能是uint8或uint16型数据,通过函数的变化输出I2为一个double型数据,这样两图像数据就可以方便的进行相加等代数运算. 作为一个示例,现将刚刚显示的加有噪声的图像进行相加求平均以消除图像的噪声。在图像中我们给图像加的是均值为0,方差为0.02的高斯噪声,将图像相加了一百遍,再求其平均值。程序如下:例3-4:%例图像加噪声再通过多次相加求平均的方法祛除噪声I=imread(eight.tif);J=imnoise(I,gaussian,0,0.02);subplot(1,2,1),imshow(I),title(原图像);subplot(1,2,2),imshow(J),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(相加求平均后的图像);Imresize函数实现图像的缩放,其函数的语法格式为:B=imresize(A,m,method) 这里参数method用于指定插值的方法,可选用的值为nearest(最邻近法),bilinear(双线性插值),bicubic(双三次插值),默认为nearest。B=imresize(A,m,method)返回原图A的m倍放大的图像(m小于1时效果是缩小)。例3-5:I=imread(eight.tif);J=imresize(I,1.25);imshow(I),title(原图像)figure,imshow(J),title(放大后的图像) 在工具箱中的函数imrotate可用上述三种方法对图像进行插值旋转,默认的插值方法也是最邻近插值法。 Imrotate的语法格式为:B=imrotate(A,angle,method) 函数imrotate对图像进行旋转,参数method用于指定插值的方法,可选用的值为nearest(最邻近法),bilinear(双线性插值),bicubic(双三次插值),默认为nearest。一般说来旋转后的图像会比原图大,超出原图部分值为0。例3-6:I=imread(eight.tif);J=imrotate(I,30,bilinear);imshow(I);title(原图像)figure,imshow(J),title(旋转后的图像)三、实验内容:1、验证实验原理中给出的例题,掌握相关函数的使用方法。2、要求设计一个程序完成下列要求:1)读出lena1.tiff这幅图像,完成基本点运算(图像求反、线性灰度变换、对数增强、灰度切割),并显示各次运算的结果图像;要求:l 线性灰度变换:将小于30的灰度值不变,将30到150的灰度值拉伸到30到200,同时压缩150到255的灰度值到200与255之间。l 对数增强利用t=41*log(1+s)实现,注意运算前用double()函数运算后用uint()函数对数据类型进行转换;l 灰度切割:将60到120的灰度值变为220,其他的灰度值不变。2)给lena1.tiff这幅图像加入椒盐噪声后并与原图显示在同一图像对话框中;3) 运用for循环,将100幅加有噪声的图像进行相加并求其平均值,显示求

温馨提示

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

评论

0/150

提交评论