1、.课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目:基于 matlab图像增强的比较及其理论分析初始条件:1. 提供实验室机房及其 matlab 软件;2. 给定一张灰度图片,模拟加入高斯噪声、椒盐噪声等若干噪声,然后使用中值滤波、均值滤波等方法进行图像增强。要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求):(1)了解对灰度图片处理的基本原理和方法;(2)熟悉掌握 matlab 软件;(3)对灰度图片模拟加入噪声;(4)利用 matlab 对加入噪声的该图片进行处理,记录每一种方法的过程,并进行比较,分析哪种噪声的所对应的增强方法效果最好;(
2、5)在进行处理时要对每一步处理进行理论分析;(6)要求阅读相关参考文献不少于 5 篇;(7)根据课程设计有关规范,按时、独立完成课程设计说明书。时间安排:(1) 布置课程设计任务,查阅资料 四天;(2) 利用软件进行的图片处理,记录其结果 一周;(3) 完成课程设计报告书 三天;指导教师签名: 年 月 日系主任(或责任教师) 签名: 年 月 日.目录摘要 I1 Matlab 软件简介 11.1 Matlab 语言的历史 11.2 Matlab 软件概况 12 原理分析 32.1 数字图像噪声 32.2 空间域图像增强 32.3 均值滤波 32.4 中值滤波 43 程序设计 63.1 程序设计思
3、路 63.2 要使用的 Matlab 函数 64 程序流程图 84.1 添加高斯噪声流程图 84.2 添加椒盐噪声流程图 84.3 均值滤波流程图 94.4 中值滤波流程图 95 源程序 105.1 添加高斯噪声再滤波 105.2 添加椒盐噪声再滤波 116 程序运行结果及分析 136.1 高斯噪声滤波结果 136.2 椒盐噪声滤波结果 136.3 结果分析 147 课程设计心得体会 15参考文献 16致谢 17.摘要图像在实际应用中可能会遇到各种噪声干扰,如高斯噪声、椒盐噪声等。可以采用空间域图像增强的办法对其进行处理,减少噪声的影响。本次课设使用的是空间滤波对图片处理,包括均值滤波和中值滤
4、波。关键词:高斯噪声,椒盐噪声,均值滤波,中值滤波.1 Matlab 软件简介1.1 Matlab 语言的历史70 年代后期,身为美国 New Mexico 大学计算机系系主任的 Cleve Moler 发现学生用 FORTRAN 编写接口程序很费时间 ,于是他开始自己动手,利用业余时间为学生编写 EISPACK 和 LINPACK 的接口程序。Cleve Moler 给这个接口程序取名为 Matlab。1984 年,为了推广 Matlab 在数值计算中的应用, Cleve Moler、Johon Little 等正式成立了 Math works 公司,从而把 Matlab 推向市场,并开始了
5、对 Matlab 工具相等的开发设计。 1.2 Matlab 软件概况Matlab 是 Matrix Laboratory 的缩写,意为矩阵实验室。它具有强大的矩阵处理功能和绘图功能,进还能进行文字处理,绘图,建模仿真等功能。随着版本的不断升级,它在数值计算及符号计算功能上得到了进一步完善。Matlab已经发展成为多学科、多种工作平台的功能强大的大型软件。在欧美等高校,Matlab 已经成为线性代数、自动控制理论、概率论及数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具。Matlab 有以下一些特点:Matlab 的帮助功能很强大,自带有详细的帮助手册,基于 HTML
6、 的完整的帮助功能,也可以用 help 命令来得到帮助信息。程序语法与 C 语言类似,设计自由度大,方便我们编程。例如在 Matlab 里,用户无需对变量预定义就可使用。大量数学函数已经定义好,并且有很强的用户自定义函数的能力。Matlab 有高级的程序环境,但程序环境很简单易用,有与其它语言编写的程序结合和输入输出格式化数据的能力;Matlab 既具有结构化的控制语句,又有面向对象编程的特性。还有一个原因使 Matlab 受人们欢迎的,那就是 Matlab 源程序具有很大的开放性。除了内部函数以外,所有 Matlab 的核心文件和工具箱文件都是可读可改的源文件,用户可通过对源文件的修改以及加
7、入自己的文件构成新的工具箱。.Matlab 有强大的的图形绘制功能。在 Matlab 里,数据可视化的操作非常简单易用。Matlab 还有较强的编辑图形界面的能力。可以用来声成图解和可视化的二维、三维图。Matlab 还拥有功能强大的各种工具箱。其工具箱分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能,图示建模仿真功能,文字处理功能以及与硬件实时交互功能。功能性工具箱用于多种学科。而学科性工具箱是专业性比较强的,如(control、 signal proceessing 、commumnication) toolbox 等。这些工具箱都是由该领域内学术水平很高的专家
8、编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高,精,尖的研究,能极大地促进我们的学习研究工作。虽然 Matlab 有很多优点,但它也有一些缺点,比如:由于 Matlab 的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。.2 原理分析2.1 数字图像噪声数字图像在图像获取集数字化过程,以及在数字图像传输的过程中,有可能会受到噪声干扰。图像传感器在获取图像中会受到环境和原件质量的影响,产生噪声。例如照相机照相时会受到光照影响。数字图像在传输过程中,由于传输信道回手到噪声干扰,也会产生噪声。噪声有很多种类,例如:高斯噪声,瑞利噪声,椒盐噪声,指数分布噪声等等
9、。本次课设讨论的是高斯噪声和椒盐噪声。高斯噪声符合高斯分布,高斯噪声的产生源于电子电路噪声和由低照明度或高温带来的传感器噪声。其概率密度函数为: 2/)(21)(zezp椒盐噪声又称(双极)脉冲噪声,其概率密度函数为: 其 他,0,)(bzPapba,灰度级 b 在图像中将显示为一个亮点,灰度级 a 为一个暗点。椒盐噪声最主要表现在成像中的短暂停留中。2.2 空间域图像增强对噪声图片处理要使用图像增强的方法。图像增强技术是为了人类视觉系统的生理接受特点而设计一种改善图像的方法,处理图像,使其更适合于特定应用。图像增强的方法有空间域方法和频域方法。本次课设使用的是空间域方法。空间域指图像平面本身
10、,以图像像素直接处理为基础。空间域增强包括灰度变换,直方图处理,用算数、逻辑操作增强,空间滤波等。其中空间滤波包括平滑空间滤波器,锐化空间滤波器。平滑空间滤波器包括平滑线性滤波器和统计排序滤波器。2.3 均值滤波平滑线性滤波器,即为均值滤波,其输出是包含在滤波掩模邻域内像素的简单平均值。这种处理减小了图像灰度的尖锐变化,可以减噪,也会有灰度边缘模糊的负面效应。.一幅 MN 的图像经过一个 mn(m 和 n 是奇数)的加权平均值滤波器滤波的过程可由下式给出: asbtasbt tswtyxftyxg),(,),(如下图 2.1、2.2 显示了两个 33 线性平滑滤波器:1 1 11 1 11 1
11、 1图 2.1 空间均值滤波器1 2 12 4 21 2 1图 2.2 加权平均滤波器图 2.1 所有系数都相等的空间均值滤波器,又称为盒滤波器,设 R 是由掩膜定义的 33 邻域像素灰度的平均值,则:,在滤波处理后,所有图像被 9 除。m n 掩膜应有等于 1/mn91izR的归一化常数。图 2.2 所示的掩膜叫加权平均,一些像素比另一些像素更为重要,对于图2.2,掩膜中心位置的像素权值大一些,因此这一像素比较重要,其他像素不太重要。随着距中心距离的增加权值也在减小,这样设定可以减小平滑处理中的模糊。另外,掩膜中所有系数的和为 16,很方便于计算机的实现。2.4 中值滤波统计排序滤波器是一种
12、非线性的空间滤波器,它的响应就与图像滤波器包围的图像区域中像素的排序,然后由统计排序结果决定的值代替中心像素的值。最常见的例子就是中值滤波器。为对一幅图像上的某个点做中值滤波处理,必96.须先将掩模内欲求的像素及其邻域的像素排序,确定出中值,并将该值赋予该像素点。中值滤波器有优秀的去噪能力,比小尺寸的线性平滑滤波器的模糊程度要低很多。.3 程序设计3.1 程序设计思路首先考虑如何在图像中加入噪声。本次课设使用的图片是 256 级灰度图片,在 Matlab 中表示为一个矩阵。加入噪声就是改变矩阵中某些点的值。在加入高斯噪声时,可以使用函数随机生成高斯分布的矩阵,随机的加到某些点上。在加入椒盐噪声
13、时,也是二循环循环矩阵中每一点,随机的改变某一点的值为 0或 255。均值滤波以 33 为例,产生一个 33 的矩阵,矩阵中每个值为 1/9,用该矩阵和图片卷积就可以实现均值滤波。中值滤波可以用两重循环循环图片中除了边缘的点,对该点及周围的八个点的数值进行排序,得到中值,将该点的值改为中值即可实现。3.2 要使用的 Matlab 函数程序设计思路已经有了,结下来分析如何在 Matlab 里具体实现该程序。Matlab 的语法并不困难,掌握了所需的函数后就能很快设计出程序了,这里主要介绍一下要用到的函数。加入噪声要用到随机数生成函数。加入高斯噪声用的函数是 randn,随机数randn 产生均值
14、为 0,方差 2 = 1,标准差 = 1 的正态分布的随机数或矩阵的函数。其用法有 Y = randn,Y = randn(n),Y = randn(m,n),Y = randn(m n),Y = randn(m,n,p,.),Y = randn(m n p.),Y = randn(size(A),randn(method,s),s = randn(method)。本课设程序中的用法是 Y = randn(size(A),返回一个和 A 有同样维数大小的随机数组。加入椒盐噪声时用的函数是 rand,可以返回一个 0-1 之间均匀分布的随机数。其用法有 Y = rand, Y = rand(n)
15、,Y = rand(m,n),Y = rand(m n),Y = rand(m,n,p,.),Y = rand(m n p.),Y = rand(size(A),rand(method,s),s = rand(method),本程序中的用法是 Y=rand,Y 值是一个随机数。均值滤波时可以用 ones(n)函数产生 n 阶全是 1 的矩阵。二维卷积时可以用 conv2 函数,用法有 C = conv2(A,B),C = conv2(hcol,hrow,A),C = conv2(.,shape)。本程序使用 C = conv2(A,B),表示矩.阵 A 和 B 进行二维卷积。中值滤波时可以使用
16、 reshape 函数进行矩阵变形,其用法有 B = reshape(A,m,n),B = reshape(A,m,n,p,.),B = reshape(A,m n p .),B = reshape(A,.,.),B = reshape(A,siz)。本程序中用法是 b=reshape(a,1,9),就是把 33 矩阵转化为 19 的矩阵以便于排序。再用 sort 函数对一个数组进行排序,用法是 B = sort(A),B = sort(A,dim),B = sort(.,mode),B,IX = sort(.)。本程序中用法是 B = sort(A),把矩阵 A 按行进行升序排序。.4 程序
17、流程图4.1 添加高斯噪声流程图如下图 4.1 是添加高斯噪声的流程图,通过高斯随机数函数生成高斯分布数,加到原图像中。读入图片到 I把 I 转换为 double 型数据生成和 I 大小一样的高斯分布矩阵 J 并取整I=I+J再把 I 转化为整数型图 4.1 添加高斯噪声流程图4.2 添加椒盐噪声流程图图 4.2 是添加椒盐噪声的流程图,通过均匀随机数函数随机的在图片中添加白点或黑点,噪声密度是 0.05。.该点值为 255读入图片到 I从 I 的第一到最后一行循环从 I 的第一到最后一列循环如果随机数大于0.95该点值为 0得到加入噪声的矩阵YYYNNN如果随机数小于0.5YN图 4.2 添
18、加椒盐噪声4.3 均值滤波流程图下图 4.3 是均值滤波的流程图,以 33 全 1 矩阵为掩膜,通过掩膜和图片进行 2 维卷积实现均值滤波。.读入图片到 I生成全 1 的 33 矩阵 hh=h/9h 与 I 进行二维卷积得到均值滤波后矩阵图 4.3 均值滤波流程图4.4 中值滤波流程图如图 4.4 是中值滤波流程图,首先找出某点及周围 8 个点的数值,对其进行排序,找出其中的中值,赋值给该点。.读入图片到 I从 I 的第一到最后一行循环从 I 的第一到最后一列循环该点值为 0得到中值滤波后的矩阵YNNYa 等于以该点为中心的 33 矩阵把 a 转化为 19 的矩阵b对 b 排序该点的值等于b(
19、5)4.4 中值滤波流程图.5 源程序5.1 添加高斯噪声再滤波以下程序是给图片 2.jpg 添加高斯噪声,再用 33 的均值滤波和中值滤波处理。I=imread(2.jpg); %读入图片到 Ifigure(1); %显示原图片imshow(I);J=round(0.1*randn(size(I)*256); %产生均值为 0,方差 0.1,范围 0-1 的高斯噪声矩阵 J,再乘以 256 以适应灰度图片的数值, J 与 I 大小相同J=uint8(J); %把 J 转换为整数型矩阵I=I+J; %I 加入噪声figure(2); %显示加入噪声后的图片imshow(I,0 255);h=o
20、nes(3) ; %均值滤波,生成 33 全 1 矩阵 hh=h/9; %把矩阵变为全是 1/9J=conv2(I,h) ; %矩阵与 I 进行二维卷积figure(3); %显示均值滤波结果imshow(J,);for m=2:size(I,1)-1 %中值滤波 for n=2:size(I,2)-1 %循环矩阵 I 中除了边缘外每一点a=I(m-1:m+1,n-1:n+1); %a 等于该点周围 33 矩阵b=reshape(a,1,9); %把 a 转化为 19 矩阵b=sort(b); %对 b 升序排序I(m,n)=b(5); %该点值等于中值 b(5)end;end;figure(
21、4) %显示中值滤波结果imshow(I);.5.2 添加椒盐噪声再滤波以下程序是给图片 2.jpg 添加椒盐噪声,再用 33 的均值滤波和中值滤波处理。I=imread(2.jpg); %读入图片到 Ifigure(1) %显示原图片imshow(I);for m=1:size(I,1) %加椒盐噪声。噪声密度 0.05for n=1:size(I,2) %循环 I 内每一点if rand0.95 %如果均匀随机数大于 0.95if round(rand) %如果均匀随机数大于 0.5I(m,n)=0; %该点值变为 0elseI(m,n)=255; %否则该点值变为 255end;end;
22、end;end;figure(2) %显示添加椒盐噪声后的图片imshow(I);h=ones(3) ; %均值滤波h=h/9; J=conv2(I,h) ; figure(3); %显示均值滤波后图片imshow(J,);for m=2:size(I,1)-1 %中值滤波for n=2:size(I,2)-1a=I(m-1:m+1,n-1:n+1);b=reshape(a,1,9);.b=sort(b);I(m,n)=b(5);end;end;figure(4) ; %显示中值滤波后图片imshow(I);.6 程序运行结果及分析6.1 高斯噪声滤波结果首先在 Matlab 中输入源程序,然
23、后保存,选择 Debug 菜单中的 Run 执行程序。程序运行结果如图 6.1-6.4:图 6.1 原图片图 6.2 添加高斯噪声图片图 6.3 均值滤波结果图 6.4 中值滤波结果6.2 椒盐噪声滤波结果椒盐噪声滤波程序使用的图片和高斯噪声滤波程序一样,都是 2.jpg,其程序运行结果如图 6.5-6.7:.图 6.5 添加椒盐噪声图片图 6.6 均值滤波结果图 6.7 中值滤波结果6.3 结果分析通过程序运行结果可以看出,在添加高斯噪声的图片中,使用均值滤波后,图像的噪声减弱了,同时图像也变模糊了。如果采用更大的掩模,图像会更加模糊。使用中值滤波后噪声也明显降低,图片没有均值滤波那么模糊,
24、说明中值滤波效果更好。在添加椒盐噪声的图片中,经过均值滤波后,图片变得模糊,但是椒盐噪声并没有被明显滤除,说明均值滤波对椒盐噪声效果不好。使用中值滤波后,滤除了椒盐噪声,图片也没有明显模糊,说明中值滤波滤除椒盐噪声很有效。.7 课程设计心得体会通过 Matlab 一周以来的学习研究,我对 Matlab 有了初步的认识,我掌握了 Matlab 的基本操作,并学会了用 Matlab 解决一些课程中的问题,下面是我具体的一些体会Matlab 功能非常强大,几乎可以计算我们目前所遇到的任何问题,不仅可以计算数学问题,也可以用来解决电路等其他学科的各种问题。而且我们可以自编函数,从而可以解决更多样的问题
25、。但以目前我们的知识,只能掌握Matlab 的一小部分功能,在以后的学习中,我还需要继续学习 Matlab 的相关知识。Matlab 虽然功能非常强大,但其操作却非常简单,它的语法类似于我们以前学过的 C 语言,使我很容易上手,而其语法比 C 语言更为自由,限制更少,语法类似于自然语言,简洁而智能化,使我可以很容易的编写程序且不容易出错。关于绘图的操作则比 C 语言简单得多,用几条简单的语句就可以绘出各种曲线、图形,使我们的学习研究变的非常方便。通过本次课程设计我掌握了FFT 的编程方法,对 FFT 有了更深刻的了解。我认为学习 Matlab 的关键在于函数,只要掌握了函数的用法,那么就能很快
26、的编出程序。而 Matlab 的难点也正是函数,因为 Matlab 拥有大量的函数,仅仅基本的函数就超过七百个,要是算上专业拓展函数那就更多,想在短时间内掌握这么多函数是很难的。我认为应该多练多学,在解决问题的过程中学习并记住所用的函数,有不懂的就查资料,问同学,争取彻底搞懂所作的问题,并牢牢掌握,这样以后就可以独立解决类似问题。在这次课程设计中,我学到了很多关于 Matlab 的知识,但这还远远不够,我现在只掌握了一些基本的功能,而解决更高级问题我的知识还不够,我要在日后进一步学习,更好地掌握 Matlab。.参考文献1 冈萨雷斯,伍兹数字图像处理北京:电子工业出版社,20042 冈萨雷斯,
27、伍兹数字图像处理(Matlab 版) 北京:电子工业出版社,20053 陈怀琛,吴大正,高西全Matlab 及在电子信息课程中的应用,第三版北京:电子工业出版社,20064 杨高波,元波精通 Matlab 7.0 混合编程北京:电子工业出版社,20065 陈怀琛Matlab 及其在理工课程中的应用指南西安:西安电子科技大学出版社,2000.致谢本次课设的指导老师 XXX 老师给了我很大帮助,帮助我修订了课程设计说明书,巩固了数字图像处理的相关知识,使我的知识水平有了较大提高。XXX 老师在数字图像处理课上认真细致的讲解也使我受益匪浅,在此对他表示诚挚的谢意。我同组的同学也给了我很多帮助,我们共同努力完成了本次课程设计,在此也对他们表示感谢。.本科生课程设计成绩评定表姓 名 性 别专业 班级课程设计题目:基于 matlab图像增强的比较及其理论分析课程设计答辩或质疑记录:成绩评定依据:指导教师签字:_.年 月 日