您好,欢迎访问三七文档
课程论文课程名称:数字图像处理论文题目:基于Matlab的数字图像处理的典型应用——图像运算专业:电子信息工程班级:电信12-1BF姓名:徐昕学号:14122203421河北经贸大学毕业论文2摘要数字图像处理是用计算机对图像信息进行处理的一门技术,主要是为了修改图形,改善图像质量,或是从图像中提起有效信息,还有利用数字图像处理可以对图像进行体积压缩,便于传输和保存。本文论述了用Matlab编程对数字图像进行图像运算的基本方法。图像运算涵盖了MATLAB程序设计、图像点运算、代数运算、几何运算等基本知识及其应用(点运算是图象处理的一个重要运算)。以及对图像加入噪声、图像缩放和图像旋转。关键词图像点运算;代数运算;几何运算;图像缩放;图像旋转河北经贸大学毕业论文3目录绪论第一章图像运算2.1点运算2.2代数运算2.3几何运算第二章程序设计与调试结束语参考文献河北经贸大学毕业论文4绪论早期的计算机无论在计算速度或存储容量方面,难于满足对庞大图像数据进行实时处理的要求。随着计算机硬件技术及数字化技术的发展,计算机、内存及外围设备的价格急剧下降,而其性能却有了大幅度的提高。图像信息是人类获得外界信息的主要来源,数字图像处理技术越来越多的应用于人们日常工作、学习和生活中。和传统图像处理相比,它具有精度高、再观性好、通用性和灵活性强等特点。在近代科学研究、军事技术、工农业生产、医学、气象及天文学等领域中也得到了广泛应用。近几年来,随着计算机和各个相关领域研究的迅速发展,科学计算可视化、多媒体技术等研究和应用的兴起,数字图像处理从1个专门领域的学科,变成了1种新型的科学研究和人机界面的工具。数字图像作为一门新兴技术,它是二十一世纪五十年代数字计算机发展到相当水平后开拓出来的计算机应用新领域,它把图像转换成数据矩阵存放于计算机中,并进行滤波、增强、删除等处理,包括图像输入输出技术、图像分析、变换于处理技术以及图像识别和特征提取等方面。六十到七十年代数字处理技术的理论和方法更加完善,其准确性、灵活性和通用性逐步提高。在日常生活中,电脑人像艺术,电视中的特殊效果,自动售货机钞票的识别,邮政编码的自动识别和利用指纹、虹膜、面部等特征的身份识别等均是图像处理的广泛应用。进行数字图像处理时主要涉及数字图像点运算处理,针对图像的像素进行加、减、乘、除等运算,有效地改变了图像的直方图分布。河北经贸大学毕业论文5第一章图像运算按图像处理运算的数学特征,图像基本运算可分为:点运算、代数运算和几何运算。1.1点运算点运算是指对一幅图像中每个像素点的灰度值进行计算的方法。点运算通过对图像中每个像素值进行计算,改善图像显示效果的操作,也称对比度增强,对比度拉伸,灰度变换,可以表示为B(x,y)=f(A(x,y))。进行逐点运算,输入映射为输出,不改变图像像素的空间关系。应用点运算,将输入图像转换为在每一灰度级上都有相同的像素点数的输出图像(输出直方图是平的)。均衡后,每一灰度级的像素个数为Ao/Dm。由于式的分子分母是同一自变量,如果它们仅差一比例常数,也就是说分母是分子的若干倍,例如Dm/Ao倍,即,则上式的H(D)部分被约掉。仅剩下与D无关的常数项。1.2代数运算代数运算是指将两幅或多幅图像通过对应像素之间的加、减、乘、除运算得到输出图像的方法。11()()()ABHfDHDffD()()moDfDHDA河北经贸大学毕业论文6代数运算是指对两幅输入图像进行点对点的加、减、乘或除运算而得到输出图像的运算。对于相加和相乘的情形,可能不止有两幅图像参加运算。在一般情况下,输入情况之一可能为常数。四种图像处理代数运算的数学表达式如下: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))图像相加的一个重要应用是对同一场景的多幅图像求平均值。这点被经常用来有效的降低加性随机噪声的影响。1.3几何运算几何运算就是改变图像中物体对象(像素)之间的空间关系。从变换性质来分,几何变换可以分为图像的位置变换(平移、镜像、旋转)、形状变换(放大、缩小)以及图像的复合变换等。几何运算可改变图像中各物体之间的空间关系。这种运算可以被看成是将物体在图像内移动。一个几何运算需要两个独立的算法。首先,需要一个算法来定义空间变换本身,用它来描述每个像素如何从其初始位置“移动”到终止位置,即每个像素的“运动”。同时,还需要一个用于灰度插值的算法,这是因为,在一般情况下,输入图像的位置坐标(x,y)为整数,而输出图像的位置坐标为非整数,反过来也如此。因此插值就是对变换之后的整数坐标位置的像素值进行估计。MATLAB提供了一些函数实河北经贸大学毕业论文7现这些功能。插值是常用的数学运算,通常是利用曲线拟合的方法,通过离散的采样点建立一个连续函数来逼近真实的曲线,用这个重建的函数便可以求出任意位置的函数值。MATLAB图像处理工具箱中的函数imresize常用下述的3种方法对图像进行插值缩放。(如果不指定插值方法,则默认为最邻近插值法。)最近邻插值是最简便的插值,在这种算法中,每一个插值输出像素的值就是在输入图像中与其最临近的采样点的值。最近邻插值是工具箱函数默认使用的插值方法,而且这种插值方法的运算量非常小。当图像中包含像素之间灰度级变化的细微结构时,最近邻插值法会在图像中产生人工的痕迹。双线性插值法的输出像素值是它在输入图像中2×2领域采样点的平均值,它根据某像素周围4个像素的灰度值在水平和垂直两个方向上对其插值。双三次插值的插值核为三次函数,其插值邻域的大小为4×4。它的插值效果比较好,但相应的计算量也比较大。第二章程序设计与调试为了完成人为的往一幅图像中加入噪声,并通过多次相加求平均的方法消除所加入的噪声。在MATLAB中提供了给图像加入噪声的函数imnoiseimnoise的语法格式为J=imnoise(I,type)J=imnoise(I,type,parameters)其中J=imnoise(I,type)返回对原始图像I添加典型噪声的有噪图像J。参数type和parameters用于确定噪声的类型和相应的参数。例:对图像eight.tif分别加入高斯噪声、椒盐噪声和乘性噪声:执行该程序的命令:河北经贸大学毕业论文8I=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程序语言中,分号的用处为不显示程序运算中的中间结果,这在一定程度上使系统运算的效率增高,因此在不需知道中间结果的情况下,可以用分号作为一个句子的结尾,而不显示该句运算的中间结果。河北经贸大学毕业论文9代数运算中需要有若干幅带有随机噪声的图像数据,在这里我们运用MATLAB中的FOR循环语句来完成产生多幅带有噪声的图像数据及将这些图像数据进行相加运算。这种循环允许一组命令以固定的和预定的次数重复,循环的一般形式为:forvariable=expressionstatementsend例:(%一个简单的for循环)fori=1:10;y(i)=i;end;y%显示y的结果y=12345678910为了得到最大的速度,在for循环被执行之前,应预先分配数组。例如前面所考虑的第一种情况,在for循环内每执行一次命令,矢量y的维数增加1。这样就使得MATLAB每通过一次循环对y分配更多的内存,这当然要花费一定的时间。在实际的对图像处理过程中,由于我们读出的图像是unit8型,而在MATLAB的矩阵运算中要求所有的运算变量为double型(双精度型)。所以读出的图像数据不能直接进行相加求平均,因此必须使用一个函数将图像数据转换成双精度型数据。MATLAB中提供了这样的函数,如im2double函数,其语法格式为:I2=im2double(I1)其中I1是输入的图像数据,它可能是uint8或uint16型数据,通过函数的变化输出I2为一个double型数据,这样两图像数据就可以方便的进行相加等代数运算作为一个示例,现将刚刚显示的加有噪声的图像进行相加求平均以消除图像的河北经贸大学毕业论文10噪声。在图像中我们给图像加的是均值为0,方差为0.02的高斯噪声,将图像相加了一百遍,再求其平均值。例:图像加噪声再通过多次相加求平均的方法祛除噪声程序如下: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函数的语法格式为:河北经贸大学毕业论文11B=imresize(A,m,method)这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。B=imresize(A,m,method)返回原图A的m倍放大的图像(m小于1时效果是缩小)。例:(将图像放大)执行该程序的命令:I=imread('eight.tif');J=imresize(I,1.25);imshow(I),title('原图像')figure,imshow(J),title('放大后的图像')该程序的效果图如下:原图象河北经贸大学毕业论文12放大后图像在工具箱中的函数imrotate可用上述三种方法对图像进行插值旋转,默认的插值方法也是最邻近插值法。Imrotate的语法格式为:B=imrotate(A,angle,method)函数imrotate对图像进行旋转,参数method用于指定插值的方法,,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。一般说来旋转后的图像会比原图大,超出原图部分值为0。例:(将图像旋转)执行该程序的命令:I=imread('eight.tif');J=imrotate(I,30,'bilinear');imshow(I);title('原图像')figure,imshow(J),title('旋转后的图像')河北经贸大学毕业论文13该程序效果图如下:原图像旋转后图像河北经贸大学毕业论文14结束语本文主要介绍了图像的基本运算,包括点运算、代数运算和几何运算,举了相应的Matlab实例,并对其相应的应用做了介绍。比如说代数运算可用于去除图像的噪声等等。其中的几何运算包括两个步骤,一个是空间变换,一个是重采样
本文标题:数字图像处理论文
链接地址:https://www.777doc.com/doc-2387995 .html