您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > 数字图像处理课程设计
11.前言数字图像处理技术是20世纪60年代开始发展起来的一门新兴学科。近40年来,由于大规模集成电路和计算机技术的迅速发展,离散数学的创立及理论上的不断突破,以及军事、医学和工业等方面应用需求的不断增长,数字图像处理的理论和方法发展迅速,图像处理技术不断完善,不仅在理论研究上取得了很大的进展,而且其应用领域也日益扩大。随着科技的进步以及人类需求的多样化发展,多学科的交叉、融合已成为现代科学发展的突出特色和重要途径。因此,数字图像处理学科正逐步向其他学科领域渗透,并为其他学科的研究和发展提供基础性支持。众所周知,人类正在实践的21世纪是一个信息时代。今天的社会,信息技术已经全面服务于社会生产和生活的方方面面,人们所做工作的相当一部分就是对信息的处理和传输,其中图像是人类获取信息、表达信息和传递信息的重要手段,是人类感知和认识世界的基础。有关研究表明,日常生活中人们所接受的各种信息中图像信息占总信息量的80%左右,从这一角度看,“百闻不如一见”正是图像处理重要性的形象表达和经验总结。因此,数字图像处理技术无论是对于21世纪的科学理论研究,还是工程应用都将具有重要的影响。国内外许多有识之士指出,从某种意义上讲,数字图像处理是实现智能计算机、智能机器人或多媒体通信系统的基础,未来计算机及智能机器人的发展与进步将在一定程度上依赖于机器视觉信息处理理论和技术的突破。虽然相对于经典学科,数字图像处理还很年轻,但日趋成熟的数字图像处理技术已经在很多方面得到深入而广泛的应用,一定程度上改变了人类的生活,给人们的日常生活、学习、工作带来极大的方便。例如,Internet上的视频广播、现代卫星或遥感照片的合成和处理、工业产品的自动检测、各种医学影像和图像的处理、远程医疗诊断及手术以及视频会议、视频电话等都采用了图像处理技术实现实时信息交互。在信息化的今天,信息技术已经全面服务于社会的生产和生活的各个方面。信息是抽象的,它依附在各种媒体所表示的数据中,其中,图像信息是人类赖以获取信息的最重要来源之一。随着计算机技术的迅猛发展,图像和图形技术不断融合,产生了各种图像处理、CAD软件。这些软件被广泛应用于计算机科学、2工程学、统计学、物理学、信息科学、化学、生物学、医学乃至社会科学等领域,取得了令人瞩目的成就。MATLAB自1984年由美国MathWorks公司推向市场以来,经历了二十多年的发展,现已成为国际公认的最优秀的科技应用软件。MATLAB既是一种直观高效的计算机语言,同时又是一个科学计算平台,它为数据分析和数据可视化算法和应用程序开发提供了最核心的数学和高级图形工具。根据它提供的500多个数学和工程函数,工程技术人员和科学工作者可以在它的集成环境中交互或编程以完成各自的计算。正是由于MATLAB的各种优势和特点,以及其版本的不断更新和功能的不断完善和强大,特别是它在图形处理上的优越性,本次课程设计就是利用MATLAB图像处理工具箱函数来进行图像增强。32.设计的内容本次课程设计我做的题目是“基于matlab图像增强的比较及其理论分析”,图像增强所包含的主要内容如下图:图像增强是采用一系列技术去改善图像的视觉效果,或将图像转换成一种更适合于人或机器进行分析和处理的形式。例如采用一系列技术有选择的突出某些感兴趣的信息,同时抑制一些不需要的信息,提高图像的使用价值。鉴于以上理论知识,我先在网上下载一幅灰度图片,然后对其依次进行如下操作:1.将该图片导入MATLAB工作平台;2.利用MATLAB图像处理工具箱提供的模拟噪声生成函数imnoise,分别对该图片模拟加入高斯噪声和椒盐噪声;3.利用MATLAB软件对加入噪声的该图片进行中值滤波和均值滤波处理;4.记录处理后生成的图样,比较分析哪种方法增强效果最佳。图像的代数运算彩色变换及应用伪彩色增强假彩色增强彩色增强同态滤波增强低通滤波高通滤波频率域图像锐化图像平滑局部运算局部统计法规定化均衡化直方图修正法灰度变换点运算空间域图像增强43.流程图54.总体方案设计及原理4.1验证图片是否为灰度图片本次课设要求是对灰度图片进行处理,因此必须保证是灰度图片,在MATLAB中能实现对图片属性的查看。在MATLAB命令输入窗中,调用函数info=imfinfo(‘FILENAME.FMT’)。如查看我用的图片属性,在命令窗口输入info=imfinfo('植物大战僵尸.JPG'),得到如下结果:info=Filename:'植物大战僵尸.JPG'FileModDate:'22-Jun-200914:23:46'FileSize:177051Format:'jpg'FormatVersion:''Width:601Height:812BitDepth:8ColorType:'grayscale'FormatSignature:''NumberOfSamples:1CodingMethod:'Huffman'CodingProcess:'Sequential'Comment:{}在ColorType:'grayscale'属性行如此显示,则说明以刘亦菲.JPG命名的文件为灰度图像。4.2导入图片到MATLAB工作平台首先在MATLAB命令窗口中将其执行路径更改到要处理的灰度图片的路径,然后读取图像。函数imread可以从任何MATLAB支持的图像文件格式中,以任意位深度读取一幅图像。格式为:[X,MAP]=imread(‘FILENAME.FMT’),其中:FILENAME-为需要读入的图像文件名称,FMT-为图像格式。64.3对图片模拟加入高斯噪声和椒盐噪声Matlab图像处理工具箱提供了模拟噪声生成的函数imnoise,格式为:J=imnoise(I,type)J=imnoise(I,type,parameters)其中:I为输入图像,J为叠加噪声后的图像。type为噪声类型,parameters为各噪声相应的参数。常用的噪声类型如下:J=imnoise(I,'gaussian',M,V)均值M,方差为V的高斯噪声。M、V的缺省值为0、0.01;J=imnoise(I,'salt&pepper',D)噪声浓度为D的椒盐噪声。D的缺省值为0.05;J=imnoise(I,'speckle',V)方差为V的乘法性噪声。V的缺省值为0.04。4.4显示原图片和加入噪声的图片本次用到的MATLAB的图像显示函数为imshow,格式为:imshow(I,n)其中:I-为图片的代码,n-为显示灰度级为n的图像,n缺省为256。4.5中值滤波处理MATLAB图像处理工具箱中,提供了medfilt2和ordfilt2函数,用于实现中值滤波。medfilt2格式为:B=medfilt2(A,[mn])其中:A为输入图像,B为输出图像,[mn]为窗口大小,缺省为[33]。ordfilt2的格式为:Y=ordfilt2(X,order,domain)其中:X为输入图像,Y为输出图像,order为滤波器输出顺序值,domain为滤波窗口矩阵。Y=ordfilt2(X,5,ones(3,3))%中值滤波Y=medfilt2(X,[33])Y=ordfilt2(X,1,ones(3,3))%最小滤波Y=ordfilt2(X,9,ones(3,3))%最大滤波74.6均值滤波处理MATLAB图像处理工具箱提供了filter2和fspecial函数用于对图像进行均值滤波。(1)filter2用于对图像作卷积滤波,格式为:B=filter2(h,A,shape)其中:A为输入图像,h为滤波算子,B为输出图像,shape为指定滤波计算范围:shape='full'时,作边界补0shape='same'时,返回的图像B与输入的图像A大小相同shape='valid'时,补考虑边界补0,只计算有效输出部分。(2)fspecial用于产生预定义的滤波算子,格式为:h=fspecial(type,para)其中:参数type指定算子类型,para为指定相应的参数。type='average',表示为均值滤波器,para默认为34.7源代码I=imread('植物大战僵尸.JPG');%读取图片J1=imnoise(I,'gaussian',0,0.04);%加入高斯噪声,均值为0方差为0.04J2=imnoise(I,'salt&pepper',0.09);%加入椒盐噪声,噪声浓度为0.09K1=medfilt2(J1);%对图片J1进行中值滤波K2=medfilt2(J2);%对图片J2进行中值滤波K3=filter2(fspecial('average',1),J1);%对图片J1进行均值滤波K4=filter2(fspecial('average',1),J2);%对图片J2进行均值滤波Pause%程序执行暂停figure(1)subplot(1,3,1)%子图方式显示imshow(I)%显示图片Ititle('原始图片')%给图片加入标题subplot(1,3,2)imshow(J1)title('高斯噪声')subplot(1,3,3)imshow(J2)title('椒盐噪声')pausefigure(2)subplot(2,2,1)imshow(I)title('原始图片')8subplot(2,2,2)imshow(J1)title('高斯噪声')subplot(2,2,3)imshow(K1)title('中值滤波')subplot(2,2,4)imshow(K3)title('均值滤波')pausefigure(3)subplot(2,2,1)imshow(I)title('原始图片')subplot(2,2,2)imshow(J2)title('椒盐噪声')subplot(2,2,3)imshow(K2)title('中值滤波')subplot(2,2,4)imshow(K4)title('均值滤波')4.8结果显示在MATLAB命令窗口中输入上述代码,按下回车键,就可以显示结果,如下面三幅图所示910115.结果分析5.1均值滤波均值滤波是最简单的均值滤波,均值简单的平滑了一幅图像的局部变化,在模糊了图像的同时减少了噪声,但在滤波过程中会丢失图像细节,如第5幅和第6幅图像所示,当该图像的参数shape='full'时,作边界补0,因此后两幅看起来就是“空白”,几乎丢失了图像的全部细节。如果对图像干扰的某一噪声具有这样的特点:对图像中任意相邻两点的干扰是互不相关的。那么,若某一象素中含有噪声,而其它周围的邻点却不一定有噪声。因此,和邻近各点相比,该点的灰度值将有显著的不同。这样就可以从图像中取一子区域(称为邻域),其内含若干象素,要处理的象素位于邻域的中心。然后求出邻域中各象素(不包含要处理的象素点)的灰度平均值:)1,()1,(),1(),1(41),(nmfnmfnmfnmfnmg由于图像中相邻象素之间有很强的相关性,如果该点),(nm无噪声,则其灰度应和邻域平均值基本相等,反之,两者有明显差别。这是用邻域平均值代替该点的灰度值,可以在一定程度上消除噪声。5.2中值滤波中值滤波的应用非常广泛,因为对于很多种随机噪声,它都有良好的去噪能力,且在相同尺寸下比线性平滑滤波引起的模糊更少。中值滤波尤其对单极或双极脉冲噪声非常有效。最大值滤波对发现图像中的最亮点非常有用。同样,因为“胡椒”噪声是非常低的值,作为子图像区域的最大值选择结果,他可以通过这种滤波消除;最小值滤波对发现图像中的最暗点非常有用。同样,作为最小值操作的结果,它可以用来消除“盐”噪声。对于高斯和均匀随机分布这类噪声有最好的效果。设有一序列:niffff,...,,21有n个值,在序列中任取m个连续值:viviiiivivifffffff,,...,,,,...,,111112m为奇数3、5、7等
本文标题:数字图像处理课程设计
链接地址:https://www.777doc.com/doc-8560246 .html