湖 南 农 业 大 学 全日制普通本科生毕业设计
字符图像识别系统的预处理算法设计与实现
DESIGN AND IMPLEMENTATION OF PRE-PROCESSING ALGORITHM ON CHARACTER IMAGE RECOGNITION SYSTEM
湖南农业大学全日制普通本科生毕业设计
诚 信 声 明
本人郑重声明:所呈交的本科毕业论文是本人在指导老师的指导下,进行研究工作所取得的成果,成果不存在知识产权争议。除文中已经注明引用的内容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体在文中均作了明确的说明并表示了谢意。本人完全意识到本声明的法律结果由本人承担。
毕业论文(设计)作者签名: 年 月 日
目 录
摘 要 .............................................................. 1 关键词 .............................................................. 1 1前言 ............................................................... 1 1.1研究意义 ......................................................... 1 1.2国内外研究现状 ................................................... 2 2 MATLAB软件与图像预处理 ............................................ 4 2.1 MATLAB简述 ...................................................... 4 2.2 MATLAB软件与图像预处理 .......................................... 5 2.2.1 MATLAB处理图像的特点 .......................................... 5 2.2.2 MATLAB在图像方面的应用 ........................................ 6 3预处理介绍 ......................................................... 7 3.1图像灰度化 ....................................................... 7 3.1.1灰度的概念 ..................................................... 7 3.1.2图像灰度化介绍 ................................................. 7 3.1.3图像灰度化的常用方法 ........................................... 8 3.2 图像增强 ........................................................ 8 3.2.1灰度变换 ....................................................... 9 3.2.2直方图变换 .................................................... 10 3.3图像平滑去噪 .................................................... 11 3.3.1图像噪声 ...................................................... 11 3.3.2平滑去噪常用方法 .............................................. 13 3.4图像二值化 ...................................................... 18 3.4.1图像二值化介绍 ................................................ 18 3.4.1图像二值化常用方法 ............................................ 18 4算法设计与实现 .................................................... 19 4.1总体设计 ........................................................ 19
4.2具体代码 ........................................................ 20 4.3具体实例 ........................................................ 23 4.3.1实例一 ........................................................ 23 4.3.1实例二 ........................................................ 25 5总结 .............................................................. 27 参考文献 ........................................................... 28 致 谢 ........................................................... 29
字符图像识别系统的预处理算法设计与实现
摘 要:在图像处理的过程中,由于获取图像的工具或手段的影响,使获取图像无法完全体
现原始图像的全部信息。因此,以改善图像数据、抑制不需要的变形或者增强某些对于后续处理来说比较重要的图像特征为目的的图像预处理在图像处理的过程中就显得非常重要。常用的图像预处理手段包括图像大小的修改、图像浓度的扩展,图像由彩色差到灰度的转变、图像二值化、图像的锐化处理及图像平滑处理等方法。本文在简单介绍数字图像处理技术的基础上,着重讨论了灰度直方图的构建、直方图均衡、图像平滑、图像二值化和噪声处理的原理及实现方法,并用MATLAB开发工具实现了上述图像预处理算法并给出了各种算法的处理结果。 关键词:图像预处理;图像增强;平滑去噪;中值滤波
Design and Implementation of Pre-Processing Algorithm on Character Image Recognition
System
Abstract: In the process of image processing, due to the affection of image tools, the acquisition
image can't reflect the original image information completely. Therefore, to improve image data, inhibit deformation and enhance image characteristics is very important in image processing.Common image preprocessing method include the image size modification, the image thickness expansion, changing color image to gray, image gray-scale binary, image sharpening and the image smooth processing. Based on the brief introduction of digital image processing technique, this paper discussed the construction of gray histogram, equilibrium of histogram, the image smoothing,image gray-scale binary and noise treatments’ principle and method. The realizations of all those image preprocessing algorithm which is realized with MATLAB has been discussed in this paper, and all those result has been given after the implementations.
KeyWords:image pre-processing;image enhancement;image denoising;median filter
1 前言
1.1 研究意义
视觉是人类感觉中最高级的,而图像又在人类的感知中起着重要的作用。图像作为一种重要的信息源,通过对图像的处理和预处理可以帮助我们了解信息的内涵,增强对信息
1
的把握度,然而图像容易受到损坏或噪声污染,失去原来的信息,因此图像预处理就是在这一需求下应运而生的。图像预处理作为图像处理的重要组成部分,对于人们获得货真价实的图像信息以及复原图像本来的面目具有决定性的作用[1]。图像预处理顾名思义就是在图像分析中,对我们输入的图像进行特征抽取、分割及匹配前所进行的处理。进行图像预处理主要目的是为了消除图像中无关紧要的信息,恢复有用的真实的信息,增强相关信息的可检测性和最大限度地简化我们需要的数据,从而增加特征抽取、图像分割、匹配和识别等后续图像处理步骤的可靠性[2]。因此对图像进行预处理就成了人们获得图像信息的首要解决的事情,然而人们对于图像预处理的知识了解不是很多,而且图像预处理方法繁多,单单就平滑处理来说就有好多种方法,它们相比有哪些优缺点,以及中值滤波有何改进之处,这就是本文要探讨和研究的地方[3]。图像预处理是一个广阔的学科,应用广,分类细,但是远远不能满足社会当今的需求,需要不断的完善和发展,有很多新的方面需要探索。
1.2 国内外研究现状
对于获取来的静态图像做的一个去噪处理过程,增强等处理的过程即是图像的预处理过程。在实际应用中,各种因素都可能对拍摄的图像产生影响,例如天气好坏,光线强弱或者人为因素,以及设备使用时间过长等。为了能最大程度减少外界干扰对于整个系统的影响,应该在车牌定位以前将图像中的干扰和噪声滤除[5]。有些研究者专门针对图像的预处理阶段提出了一些算法,例如,李战明等人提出了一种图像预处理算法,该算法分四个步骤来逐步实现对图像的去噪和增强操作,处理步骤包括尺寸归一化,中值滤波,图像增强以及二值化,在原有理论研究的基础上引入了一些新思想和新方法[1]。董玲娇等人提出了一种新的图像预处理算法,该算法充分考虑由于各种原因造成的图像歪斜、模糊或缺损等情况,具有较好的处理效果[4]。也有一些研究者考虑先通过用形态运算来过滤掉图像的背景信息,因为图像的背景信息对于车牌的定位以及后续环节无关紧要,去掉背景信息还可以提高处理的效率,使用该种方法的研究者例如朱光忠等人提出了一种基于多尺度Top-Hat算子的图像预处理算法,该算法针对不同的图像模块引入不同尺度结构元素来对图像进行处理,取得了较好的效果[5]。以上列举出来的部分图像预处理算法大多都为传统的数字图像处理算法,因此并没有考虑到图像的特殊性,在实际的系统中处理的效果不理想。为了保证算法达到较好的效果,必须针对图像展开研究,系统的观察各个环境以及受到不同干扰的情况下车牌的效果,以及图像所受到的干扰对整个算法的影响,从而设计专门的算法来进行预处理,这就是目前图像预处理算法所存在的一些缺陷和不足。
随着计算机和人工智能的迅速发展,数字图像处理技术向着更高、更深的层次发展。
2
人们开始研究如何利用计算机系统的解释处理图像,这类被称为图像理解或者计算机视觉。发达国家投入了大量的人力物力来研究这项技术,取得了不少重要的成果,其中比较有代表性的成果是70年代Marr提出的视觉计算理论,此理论成为计算机视觉领域的主导思想[6]。当前,由于计算机技术的飞速发展,图像处理总的发展研究趋势是以数字处理为主。数字图像处理实质上是计算机技术、信息论和信号处理相结合的综合性应用学科,与其它学科有着密切的关系。图像去噪就是数字图像处理技术中的重要技术之一。近些年,国内外发表的数字图像预处理方面的论文提出了很多卓有成效的对图像处理的模型或方法,其中最主要的是图像去噪,图像去噪的方法从不同处理域的角度可以划分空域和频域两种处理方法:前者是在图像本身存在的二维空间里对其进行处理;而后者则是用一组正交函数系来逼近原信号函数,获得相应的系数,将对原信号的分析转化到了系数空间域,即频域中进行[7]。空间域的线性滤波算法理论发展较为成熟,数字分析简单,对滤除与信号不相关的随机噪声效果显著,但是它本身存在着明显的缺陷,如需要随机噪声的先验统计知识,对图像边缘细节保护能力较差等,特别是后者使得线性滤波无法很好地适应于图像的噪声滤除处理。与线性滤波相对应的非线性滤波大都考虑到了人的视觉标准和最佳滤波准则,提高了图像分辨率和边缘保护能力,特别是一些改进后的非线性滤波方法一般都具有了一定的自适应性,这就使得非线性滤波的功能更为强大,可以广泛地应用到医学、遥感等领域的图像处理中。1971年,图基提出了中值滤波的思想,并首先应用与时间序列的分析中,后来这种方法引入到图像处理中,用来滤除图像的噪声,收到了良好的效果[8]。随之而来的是各种中值滤波的改进方案。其中有一种被称为自适应中值滤波的改进算法引起了人们的关注,这种方法最突出的特点是具有自适应的性能并且对图像的边缘保护能力较传统算法具有明显提高。另外数学形态学和统计学的引入为数字滤波技术开辟了新的途径,1982年Serra出版的专著《Image Analysis and Mathematical Morphology》成为数学形态学应用于数字图像领域的咀程碑,由此孕育了很多相天的滤波算法,使得图像滤波算法对图像的处理有了显著提高,边缘保护能力也得到增强[9]。图像去除脉冲噪声特别是椒盐噪声的方法有很多,其中非线性中值滤波器作为排序统计滤波器的典型代表而广泛应用于数字图像的预处理领域。它与线性平滑滤波器相比,能在一程度上去除椒盐噪声,同时减少图像模糊。但中值滤波的滤波窗口大小固定,随着图像噪声率的增加,其噪声去除能力下降很快。这是由于随着噪声率的增加,图像中有用的信号点逐渐减少,噪声点因邻域内可用于滤波的信号点太少而不能被有效滤除[10]。除了上述方法之外,实际上还有许多学者提出了其他方面的方法,比如自适应加权滤波等,各种改进方法的优劣不一,目的都是为
3
了图像预处理。
1.3 论文安排及主要研究问题
第一章为绪论,首先阐述了本论文的研究目的和意义,然后介绍图像预处理技术的国内外研究现状,最后给出了本论文的主要工作安排及结构。第二章介绍MATLAB软件,以及MATLAB对图像处理的几种基本方法。第三章进行图像灰度化设计。第四章进行图像增强。第五章重点介绍图像平滑滤波技术,围绕平滑滤波的分类重点介绍了均值滤波、高斯滤波、中值滤波及频域低通滤波等几个方法的原理以及算法流程图,并且分析各个算法的优缺点。第六章主要介绍图像灰度化,以及灰度化算法的。最后一章是对论文的主要工作进行了总结,并找到不足之处及改进的方向。
2 MATLAB软件与图像预处理
2.1 MATLAB简述
MATLAB是矩阵实验室(Matrix Laborator)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。MathWorks公司针对不同领域的应用,推出了信号处理,控制系统,神经网络,图像处理,小波分析,鲁棒控制,非线性系统控制设计,系统辨识,优化设计,统计分析,财政金融,样条,通信等30多个具有专门功能的工具箱,这些工具箱是由该领域内的学术水平较高的专家编写的,无需用户自己编写所用的专业基础程序,可直接对工具箱进行运用。同时,工具箱内的函数源程序也是开放性的,多为M文件,用户可以查看这些文件的代码并进行更改,MALAB支持用户对其函数进行二次开发,用户的应用程序也可以作为新的函数添加到相应的工具箱中。MATLAB中的数字图像是以矩阵形式表示的,这意味着MATLAB强大的矩阵运算能力用于图像处理非常有利,矩阵运算的语法对MATLAB中的数字图像同样适用。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件
4
中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
2.2 MATLAB软件与图像预处理
MATLAB最突出的功能就是简洁,用更直观的符合人们思维的代码代替了C和VC++的冗长的代码,给用于带来了最直观最简洁的程序开发环境。而且MATLAB的图形功能很强大,在MATLAB里数据的可视化非常简单,MATLAB还具有较强的编辑图形界面的能力。MATLAB的另一大特色是功能强大的工具箱。MATLAB软件里包含两部分:核心部分和各种可自由选取的工具箱。核心部分则有数百个内部函数,工具箱又分为两个方面:功能性工具箱和学科性工具箱。前者用来扩充符号计算功能,图像建模仿真功能,文字处理功能和硬件实时交互功能等。可以看出功能性工具箱用于多种类型的学科,而学科性工具箱是比较专业性的工具箱,如signl processing toolbox,communication toolbox等等,所以用户可以不编写自己学科内的基础性程序,直接进行高端的程序研究。在上述工具箱中,图像处理工具包是由一系列支持图像处理操作的函数构成的,所支持的图像操作有:图像几何操作,邻域操作、图像变换、图像增强与恢复、线性滤波和滤波器的设计与实现等等。
2.2.1 MATLAB处理图像的特点
(1)MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多。
(2)友好的工作平台和编程环境。MATLAB由一系列工具组成。这些工具方便用户使用MATLAB的函数和文件,其中许多工具采用的是图形用户界面。包括MATLAB桌面和命令窗口、历史命令窗口、编辑器和调试器、路径搜索和用于用户浏览帮助、工作空间、文件的浏览器。
5
(3)简单易用的程序语言。MATLAB一个高级的距阵/阵列语言,它包含控制语句、函数、数据结构、输入和输出和面向对象编程特点。用户可以在命令窗口中将输入语句与执行命令同步,也可以先编写好一个较大的复杂的应用程序(M文件)后再一起运行。
(4)强大的科学计算机数据处理能力。MATLAB是一个包含大量计算算法的集合。其拥有600多个工程中要用到的数学运算函数,可以方便的实现用户所需的各种计算功能。
(5),出色的图形处理功能,MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。
(6),应用广泛的模块集合工具箱,MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,他们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。 2.2.2 MATLAB在图像方面的应用
(1)图像文件格式的读入和写出。MATLAB提供了图像读入函数 imread(),用来读取各种各样的文件,如bmp、pcx、jgpeg 、hdf、xwd等格式的图像。MATLAB还提供了图像写出函数imwrite(),另外还有图像显示函数 image()、imshow()。
(2)图像处理相关的基本运算。MATLAB提供了图像线性运算以及卷积、相关、滤波等非线性算。例如,用函数conv2(A,B)实现了A,B两幅图像的卷积运算。
(3)图像变换。图像变换技术是图像处理的重要工具,常运用于图像压缩、滤波、编码和后续的特征抽取或信息分析过程。MATLAB工具箱提供了常用的变换函数,如fft2()与ifft2()函数分别实现二维快速傅立叶变换与其逆变换,dct2()与idct2()函数实现二维离散余弦变换与其逆变换,Radon()与iradon()函数实现Radon变换与逆Radon变换。
(4)平滑与锐化滤波。平滑技术用于平滑图像中的噪声基本采用在空间域上的求平均值或中值。或在频域上采取低通滤波,因在灰度连续变化的图像中,我们通常认为与相邻像素灰度相差很大的突变点为噪声点,灰度突变代表了一种高频分量,低通滤波则可以削弱图像的高频成分,平滑了图像信号,但也可能使图像目标区域的边界变得模糊。而锐化技术采用的是频域上的高通滤波方法,通过增强高频成分而减少图像中的模糊,特别是
6
模糊的边缘部分得到了增强,但同时也放大了图像的噪声。在MATLAB中,各种滤波方法都是在空间域中通过不同的军纪模板即滤波算子实现,可用fspecial()函数创建预定义的滤波算子,然后用filter2()或conv2()函数在实现卷积运算的基础上进行滤波。
以上所提到的 MATLAB软件在图像中的各种处理应用都是通过相应的MATLAB函数来实现的,因此使用时,只需正确调用相应的函数并输入参数即可。
3 预处理介绍
3.1 图像灰度化
3.1.1 灰度的概念
首先了解一下灰度的基本概念,灰度用黑色调来表示物体,每个灰度对象有0%(白色)至 100%(黑色)的范围值,通常用灰度来表示黑白或灰度扫描仪生成的图像。另外使用灰度还能将彩色的图像转换为高质量的黑白图像,此时制图软件将会把原图像的所有颜色信息丢弃。而我们所说的灰度色,就是指纯白、纯黑及两者的一系列从黑到白的过渡颜色。平常所说的黑白照片、电视,实际上都应称为灰度照片、灰度电视才准确。灰度共有256个级别,灰度最高的相当于最高的黑,那就是纯黑。灰度最低的相当于最低的黑,也就是没有黑,就是纯白。当把像素量化以后,用一个字节表示像素的大小。如果把黑-灰-白连续多种变化的灰度值也量化为256个灰度级,则灰度值的范围大小为0到255,表示的含义是亮度从深到浅,相对应的图像中的颜色则是从黑到白[11]。所以黑白照片里包含了黑白之间的所有灰度值,每个像素都在黑和白之间的256种灰度中包含着。 3.1.2 图像灰度化介绍
将彩色的图像转化灰度图像的过程叫做图像灰度化,由于彩色图像的每个像素的颜色由R、G、B三个分量组成,即红、绿、蓝三种颜色。每种颜色都有255中灰度值可以去,而灰度图像则是R、G、B三个分量灰度值相同的一种特殊的图像,所以在数字图像处理过程中将彩色图像转换成灰度图像后就会使后续的图像处理时的计算量变得相对很少,这也就是图像灰度化的原因。而且灰度图像对图像特征的描述与彩色图像没有什么区别,仍能反应整个图像的整体和局部的亮度和色度特征。现在大部分的彩色图像都是采用RGB颜色模式,处理图像的时候,要分别对RGB三种分量进行处理,实际上RGB并不能反映图像的形态特征,只是从光学的原理上进行颜色的调配[12]。所以人们在进行图像处理和预处理时都会先进行图像的灰度化处理,方便对图像的后续化处理,减少图像的复杂度和信息处理量。
7
3.1.3 图像灰度化的常用方法
彩色图像RGB模型中,如果R=G=B,则彩色表示一种灰度颜色,其中这个值叫灰度值,所以灰度图像每个像素用一个字节存放灰度值(亮度值),一般有四种方法对彩色图进行灰度化:
(1)取分量法。分量法是一种比较简单的图像灰度化的方法。在彩色空间中,图像的每一个像素点都同时有几个不同的分量,如果每一个分量都有8bit来表示,那么每一个分量共有256个颜色变化值。分量法的原理即是选取像素点中的某一个分量来代替该像素点,因此就完成了图像的灰度化。此种方法过程简单,只需简单的计算过程即可将彩色图像灰度化,但也有一定的缺点和不足,如果对于所有彩色图像都采用该方法来进行灰度化,同样不能满足系统的要求,因为现实环境中的彩色图像应用的领域不同,其对图像灰度化的质量也会有不同的要求。
(2)取最大值法。最大值法的原理是选取每一个像素点的所有分量中最大的分量来代替该像素点,从而达到图像灰度化的目的。这种方法同样比较简单,没有复杂的计算过程,因此可以在较短的时间内就可以得到彩色图像的灰度化图像。
(3)平均值法。由于彩色图像每一个像素点都同时有几个不同的分量,因此平均值法的原理是将每一个像素点的所有分量的平均值作为当前像素点的像素值。例如在RGB色彩空间,每一个像素点都包含R、 G、 B三分量,利用R、 G、 B三分量的平均值来替代该像素。该方法是一种简单的灰度化方法,整个过程无需复杂的计算。
(4)加权平均值法。根据三个分量的重要性及其它指标,将三个分量以不同的权值进行加权平均运算。由于人眼对绿色的敏感度高,对蓝色的敏感度低,故可以按照不同的权值对RGB三个分量进行加权平均运算能得到比较合理的灰度图像。
3.2 图像增强
很多由于场景条件的影响图像拍摄的质量不佳或者干扰噪音较多,这就需要图像增强技术来改善图像的视觉效果。图像增强其目的主要是通过对图像进行一定的变换处理去除一些无关紧要的信息同时增强有用信息,比如突出图像中车牌的某些特点、从数字图像中提取目标物的特征参数或者忽略一些不关紧要图像信息等等,经过增强后的图像将会具有更好的视觉效果,同时更有利于提取相关信息。本文前部已经提到,利用图像获取设备得到的图像并不是完全理想的图像,实际应用中的图像都受到了不同程度的干扰,因此将会对提取图像中的重要信息带来不利影响。这样的影响如果太大,将会影响人和机器对图像的理解,将会降低整个系统的识别率和准确率。有学者曾提出应该根据图像受到的噪音和
8
干扰提出一个干扰数学模型,这样就可以将外部环境对图像的影响通过数学表达式的方式参与到整个系统的计算当中,但是在绝大多数情况下,外部环境的噪音和干扰具有极大的随机性,因此到目前为止还未能提出专门的噪音干扰的数学模型。人们通常情况下是通过自身的经验来对图像的噪音进行过滤。例如由于拍摄环境的原因使得拍摄的图像模糊或者重要细节丢失等等不利于整个系统的干扰产生,这样的情况下可以使用一些常用的数字图像操作例如图像对比度增强或者图像平滑等等来尽量过滤影响系统的噪音。此外,拍摄图像的物理设备也可能会差生一定的噪音,由于这样的设备在使用一段时间后可能会出现部分零部件的老化等等使得拍摄图像的质量下降等等,拍摄到的图像会受到各种各样的噪音的影响和干扰,因此尽可能多的去除图像中的干扰是有必要的,下面是一些数字图像中经常使用的一些图像增强方法。 3.2.1 灰度变换
灰度变换是基本的图像点运算,是图像增强处理中的一种非常基础空间域图像处理方法。灰度变换是指根据某种目标条件按照一定的变换关系去逐点改变原图像中每一个像素灰度值,目的是为了改善画质,以便让图像的显示效果更佳清晰,因此灰度变换还被称为图像的对比增强。经过灰度变换后的图像动态范围变大,对比度会增强,图像会变得更加清晰,特征也更加明显。灰度变换主要利用点运算来改变图像像素点的灰度值,不改变图像内的空间关系,除了根据某种特定的变换函数进行变换之外,灰度变换可以认为是对像素进行简单的复制。灰度变换的表达式为:
g(x,y)T[f(x,y)] (1)
其中函数T是灰度变换函数,它定义了输入图像灰度和输出图像灰度之间的变换条件。所以如果灰度函数确定了,那么灰度变换就被完全确定。灰度变换的方法有很多种,比如图像灰度求反、灰度拉伸、灰度切分、灰度动态范围调整及灰度级修正等等。以上几种方法对图像的处理效果各不相同,但是它们处理过程中都必须用到点运算。点运算通常可以分为线性变换、分段线性变换以及非线性变换这三大类。 (1)线性变换
假定输入图像f(x,y)的灰度值范围为[a,b],变换后的输出图像g(x,y)的灰度值范围扩展至[c,d],则对于图像的任一点的灰度值(x,y),其表达式如下所示:
dcg(x,y)ba[f(x,y)a]c (2)
若原图像大部分像素的灰度级在区间[a,b]内,max f为原图像灰度最大值,只有个别
9
部分的灰度级不在区间
cdcg(x,y)ba[f(x,y)a]cd,内,则为了改善图像增强效果,可以令:of(x,y)aaf(x,y)bbf(x,y)maxf (3)
因此线性变换适合那些曝光不足或过度的图像,它们的灰度可能会分布在一个很小的范围内,这时得到的图像是一个比较模糊、没有灰度层次的图像。采用上述线性变换对图像的每一个像素进行灰度作线性拉伸,将会有效的增强图像的质量。
(2)分段线性变换
分段线性变换与线性变换类似,区别是为了突出图像中感兴趣的灰度区间,相对抑制不需要的灰度区间,可以进行分段线性变换,它对图像灰度区间进行两至多段的分段。进行变换时,把0-255灰度值区间分为几个线段,每一线段都对应一个线性变换函数。
(3) 非线性变换
非线性变换顾名思义就是利用非线性变换函数对图像进行变换,分为指数变换和对数变换。指数变换,就是指输出图像像素点的灰度值与输入图像灰度值之间是指数关系,其一般公式为:
g(x,y)bf(x,y) (4)
对数变换也就是指输出图像像素点的灰度值与输入图像的灰度值之间呈现出对数关系,其一般公式为:
g(x,y)lg[f(x,y)] (5)
可见指数变换对于高灰度区间的扩展度要远远高于低灰度的区间,所以指数灰度变换一般适用于过亮的图像。与指数变换相反,对数变换对于低灰度区间扩展度较大,所以一般用来对过亮的图像进行处理。 3.2.2 直方图变换 (1) 直方图介绍
图像的灰度直方图是反映图像的像素灰度级与这种灰度级出现的概率之间的相对关
rrn系的图形。通常灰度级为[0,L-1]范围的图像直方图则是离散函数h(k)=k,k是第k级灰度,
nk是图像灰度级=rk的像素个数[13]。求灰度直方图的方法就是拿图像中像素数目的
总和n去除图像的每一个像素灰度值,表达式如下:
P(rk)nk/n k=0,1,2, ... (6)
10
从以上表述可以总结出直方图主要有以下几个特点:
直方图中没有图像的位置信息。直方图仅仅反应了图像的灰度分布,和灰度所在的位置没有丝毫关系,因此不同的图像也可能具有相同的直方图。
直方图反应了图像整体的灰度范围。直方图反应了图像整体灰度分布,对于较暗的图像,直方图集中在灰度级低一侧,相反,较亮图像的直方图则集中于灰度级较高的一侧。
直方图具有可叠加性。图像的直方图等于它各个分部直方图的和。
直方图具有统计特性。从定义可知,连续图像的直方图是连续函数,它具有统计特征。
(2)直方图均衡化
如果图像的视觉效果差或者人们特殊需要,常常需要对图像的灰度级进行修正,即对图像的直方图进行转换。直方图均衡化是图像处理中较常用的方法之一。直方图均衡化首选要先进行直方图修正,即把原图像的直方图利用灰度变换函数修正为均匀分布,然后再进行直方图均衡化。它以概率论为理论基础,运用灰度点运算实现直方图的变化,从而达到图像处理的目的。直方图的变换函数取决于直方图的累积分布函数。简单的说即把已知灰度值概率分布的图像经过一种变换,让它成为一个灰度值概率均匀分布的新图像。比如有些图像在低灰度区间的分布频率较大,使较暗地方的细节边缘比较模糊,此时我们可以进行直方图均衡化将图像的灰度范围均匀分布。而当图像的直方图分布为均匀分布时,此时图像包含的信息量最多,看起来就越清晰。另外由于直方图是只是近似的概率函数,直接变换求直方图很少能得到完全平坦的分布,而且变换后会出现灰度级减少的现象即“简并”。由于以上原因,我们也要进行直方图均衡化,以改善图像灰度的动态范围。
3.3 图像平滑去噪
灰度变换和直方图修正都可以对图像进行简单的预处理,然而这些预处理仅限于图像没有受到污染,即没有因为各种原因产生噪声或收到不规则破坏,此时灰度变换和直方图就不能达到我们预期的效果了,对于图像的复杂处理就必须采用平滑去噪方法。 3.3.1 图像噪声 (1)噪声基本介绍
噪声就是妨碍人们感觉器官对所收到的图像信息进行准确理解的因素,噪声的种类很多,比如电子噪声、机械噪声、信道噪声以及其他噪声,噪声对图像信号和相位的影响很大,有些噪声和图像信号不相关,有些却相关。图像在生成和传输过程当中常常会受到各
11
种噪声的干扰和破坏而使图像失去原来的本色,这将对后续图像的处理比如图像分割、压缩、图像理解等产生不好的影响。上面这幅图片就是受到噪声污染后的图像,可以看出图像的质量与我们所预想的差别很大。因此,对于图像处理来说,图像去噪是必不可少的预处理操作,为了抑制和消减噪声,改善图像的质量,以便于做进一步的处理,对图像进行去噪预处理是首要的步骤。人们根据图像的实际特点、噪声的统计特点、频谱的分布规律等等,发展了各式各样的减噪方法。图像的去噪方法种类很多,依据的原理也各不相同,其中比较常用的就是图像平滑去噪方法。 (2)图像噪声模型
数字图像的噪声一般源自于将图像数字化和传输的过程。在这过程中因受到环境条件的影响及设备的性能质量原因,使得图像必不可免的产生噪声。下面介绍几种常见的比较重要的噪声:
均匀分布噪声。均匀分布噪声是指原图像中每个像素点等概率产生的噪声。均匀噪声的概率密度及其期望值和方差如下式所示:
(7)
高斯噪声。高斯噪声被称为正态噪声,其噪声的概率密度如下式所示:
(8)
式中,z代表图像的灰度值,代表z的期望值,代表z的标准差。由于高斯噪声在实际图像中很常见,且在数学上处理相对比较容易,使高斯噪声模型应用比较广泛。
椒盐噪声。椒盐噪声也叫脉冲噪声,它的特点是持续时间小于0.5秒,间隔时间大于1秒。椒盐噪声作为一种非常典型的图像噪声,对图像质量的处理起着极大的影响。其噪声的概率密度如式所示:
(9)
式中,假设b>a,则图像中灰度值b将以
12
的概率在图中显示为一个亮点即盐粉
微粒;灰度值a则将以的概率显示为一个暗点(胡椒微粒)。
瑞利噪声。瑞利噪声是服从瑞利分布的噪声。其概率密度函数如式所示:
(10)
伽马噪声。伽马噪声又称为爱尔兰噪声,其概率密度函数如式所示:
(11)
(3) 图像平滑去噪
图像平滑去噪(Smoothing)是一种比较实用的数字图像预处理技术,主要目的是减少图像传输过程中参杂的噪声[14]。一种优良的图像平滑方法应该是既可以消除图像噪声的影响但是又不会让图像的边缘轮廓和线条变得模糊不清。图像平滑去噪的方法分为两大类,即空域法和频域法。
在空域法里还可以分为两个方面,一类是噪声消除,即先判定这个点是否为噪声点,若是则重新赋值给它,不是就按原值输出;另一类则是平均法,即不一一对噪声点进行清除,而是对整个图像依据某种方法进行平均运算,一般来说这类滤波方法有均值滤波、高斯滤波、维纳滤波等等。另外空域滤波还可以根据输出图像采用什么线性组合分为线性滤波和非线性滤波,线性滤波就是输出像素是输入像素的邻域像素的线性组合,而非线性滤波则指的是输出像素是输入像素的邻域像素的非线性组合。例如我们最常见的空间域滤波方法均值滤波和高斯滤波都属于线性滤波,而空域滤波中的中值滤波属于非线性滤波。线性平滑滤波在大多数情况下对各种类型的噪声有很好的去除效果。线性滤波器用连续窗函数内像素加权和来实现平滑滤波。特别典型的是线性滤波器是空间不变的,这样就可以使用卷积模板来实现滤波。
频域法则是先进行傅里叶变换到频域进行处理然后在反变回空间域还原图像,一般人们采用低通滤波等方法,这和空间域里直接对图像的像素值进行邻域内运算不同 3.3.2 平滑去噪常用方法
图像的平滑去噪一般分为空域和频域两种方法,本文只介绍空域和频域里几种常用的平滑滤波方法,比如均值滤波、高斯滤波以及中值滤波和低通滤波等等,其他的常用方法不在研究之内。
13
(1) 均值滤波
局部平滑法也称为邻域平均法,由其原理组成的滤波器叫做均值滤波器,这是一种典型的线性滤波[15]。它是一种直接在空间域里进行图像平滑处理的技术。假设图像由许多灰度值恒定的小块组成,相邻像素之间存在着很大的空间相关性,而噪声却是独立存在的,因此可以用邻域内各个像素的灰度级平均值来代替该像素原来的灰度值,这样各个像素之间的灰度值就都具有相关性,就可以去除噪声,实现图像的平滑。均值滤波还分为算术均值滤波和几何均值滤波。算术均值滤波顾名思义是以窗口内所有像素点灰度值的算术平均值替代窗口中心的灰度值,这是最简单的均值滤波,而几何均值滤波的原理是将窗口中图像像素的灰度值以几何运算求均值。
可知邻域平均法就是将当前图像各像素邻域内的灰度平均值作为其输出值的一种简单的去噪办法。
均值滤波算法主要步骤如下:
选择一个3 ×3窗口,中心像素是该点输入时的像素值,其余的是它邻域内像素的值。
然后求这些像素值的均值,作为输出的像素值,这就是邻域平均法的原理。 另外对于第一行和最后一行、第一列和最后一列来说,不能找到与自己相邻的八个像素,因此保持它们的数据不变,最后把这几行列的数据和那些变化后的数据组合在一起组成图像的灰度矩阵。
按照此灰度矩阵的值输出图像。
MATLAB中读取的图像都是八位的,其最大值只有255因此当把九个数相加后就超过了255,因此它会自动的取255.于是在im2double中将uint8数据类型转换为double型,再在整个数据运算完了以后调用im2uint8将double数据转换为uint8并显示出来。
根据均值滤波原理编写的算法流程图如图1所示。
14
读取图像像素值转换为Double型求中心像素和最接近的八个像素的平均值Y循环变量<行列值?N转换为unit8型显示结束
图1 均值滤波流程图 Fig 1 Average filtering flow diagram
均值滤波算法的输出图像是以窗口内所有像素按照某种数学操作取均值,算术滤波器可以有效的去除高斯噪声和强度不大的椒盐噪声,几何均值滤波器相对于算术滤波器能够保留更多的图像细节,但是由于算法过程中缺少对保持图像中含有目标边缘的考虑,对图像中的所有像素点包括信号突变处都进行了平滑,使用均值滤波会造成边缘的模糊和细节的湮没,因此均值滤波在图像去噪的同时也产生了不好的影响,这种方法在平滑了图像信号的同时也使图像的细节部分变得更加模糊,可以验证当邻域取得越大图像会更模糊。
(2)高斯平滑滤波
高斯平滑滤波也属于线性滤波,它是根据高斯函数的形状来选择权值的线性平滑滤波器。高斯平滑滤波对去除服从正太分布的噪声特别是高斯噪声很有效果。高斯滤波的特性与高斯函数息息相关,高斯函数具有一下的重要性质:
二维高斯函数具有旋转对称性,也就是滤波器在各个方向上的平滑程度是相同的。通常来说一幅图像的边缘方向是不知道的,因此,我们在滤波之前是无法确定哪个方
15
向上需要要更多的平滑的,而这意味着高斯滤波在图像处理中不会偏向任一方向。
高斯函数是单值函数。与均值滤波相似,高斯滤波用图像像素邻域的加权均值来代替该点的像素值,而权值的选取是随着该像素点与中心点距离单调递减的,所以离中心点比较远的像素权值较小,受到的高斯滤波影响会很小。相反如果平滑滤波对边缘像素点仍然有很大的作用,则会导致图像失真。
高斯函数的傅立叶变换频谱是单瓣的。因为图像常被高频信号所污染,而我们所期望的图像特征,既含有低频分量,又含有高频分量。高斯函数傅立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需要的信号。
高斯滤波器的宽度(决定着平滑程度)是由参数σ表证的,而且σ和平滑程度的关系是非常简单的。σ越大,高斯滤波器的频带就越宽,平滑程度就越好。通过调节平滑程度参数σ,可在图像特征分量模糊(过平滑)与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷。
由于高斯函数的可分离性,大高斯滤波器可以有效实现。通过二维高斯函数的卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积的结果与方向垂直的相同一维高斯函数进行卷积。因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长。这些性质使得它在早期的图像处理中特别有用,表明高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器。高斯滤波的算法一般分如下几步:
使用imread()读入原始的彩色图像。 输入高斯滤波器的均值和方差。
利用高斯滤波A1=fspecial('gaussian',k,n3) %生成高斯序列 用生成的高斯序列进行滤波。Y1=filter2(A2,g)/255 显示滤波后的图像。
以上分析可以看出高斯滤波是有高斯函数而决定的,所以它非常适合对正太分布的高斯噪声进行滤波,而对那些随即分布的噪声比如脉冲噪声和椒盐噪声的清除效果就不很好了,所以高斯滤波有他的局限性。这里高斯滤波的流程图就不在描述,因为高斯滤波用MATLAB函数就可以实现。 (3)中值滤波
中值滤波是一种基于排序统计理论的可有效抑制噪声的非线性平滑滤波。其滤波原理是:首先确定一个以某个像素为中心点的邻域,一般为方形邻域,然后将邻域中各
16
像素的灰度值进行排序,取中间值作为中心像素灰度的新值,这里的邻域通常被称为窗口。当窗口在图像中上下左右进行移动后,利用中值滤波算法可以很好地对图像进行平滑处理。中值滤波的输出像素是由邻域图像的中间值决定的,因而中值滤波对极限像素值(与周围像素灰度值差别较大的像素)远不如平均值那么敏感,从而可以消除孤立的噪声点,可以使图像产生较少的模糊。
图2是中值滤波的流程图。
读取图像像素值选取合适的窗口对窗口内的像素进行排序得到灰度中值N以灰度中值作为图像的新灰度输出新图像并显示结束
图2 中值滤波流程图 Fig 2 Median filtering flow diagram
中值滤波去除噪声的效果除了与噪声的类型有关外,还与邻域的空间范围和中值计算中涉及的像素数有关。一般来说,小于滤波器面积一半的亮或暗的物体基本上会被滤除,而较大的物体几乎原封不动地保存下来,因此,中值滤波器的空间尺寸必须根据现有的问题来进行调整。较简单的模板是NXN 的方形(注:此处的N通常是奇数)。总之,中值滤波具有算法简单、实时性好、可靠性高等特点,既能保护图像的边缘信息,又可以除去图像中的噪声,具有较高的实用价值。传统的中值滤波方法是先选择一定的窗口( 一般窗口大小为3 ×3 或5 ×5) ,然后使窗口在图像内逐次移动,并
17
用窗口内像素灰度值的中值来代替窗中心点处的像素灰度值。
传统的中值滤波算法的实现过程如下:
选择一个(2n +1) ×(2n +1) 的窗口(通常为3 ×3 或5 ×5) , 并用该窗口沿图像数据进行或列方向的滑动。每次移动后,对窗口内的诸像素灰度值进行排序。用排序法所得到的中值替代窗口中心位置的原始像素灰度值。然后以此作为新图像的灰度值并输出。
3.4 图像二值化
3.4.1 图像二值化介绍
一幅图像中的信息包括目标物体,背景和噪声三个部分,图像的二值化是为了得到图像中的目标物体而产生的一种图像处理方法,二值化以后图像中所有的像素点将会变为白或黑。当图像中只包含前景和背景两部分信息时,就可以将前景的像素值置为1,背景的像素值置为0,这样图像就被二值化了。 二值化的方法有很多种,一般分为 全局阈值法和局部阈值法
全局阈值法是指在二值化过程中只使用一个全局阈值T的方法。它将图像的每个像素的灰度值与T进行比较,若大于T,则取为前景色(白色);否则,取为背景色。根据文本图像的直方图或灰度空间分布确定一个阈值,以此实现灰度文本图像到二值图像的转化。其中全局阈值法又可分为基于点的阈值法和基于区域的阈值法。阈值分割法的结果很大程度上依赖于对阈值的选择,因此该方法的关键是如何选择合适的阈值。
典型的全局阈值方法包括Otsu方法、最大熵方法等。全局阈值法算法简单,对于目标和背景明显分离、直方图分布呈双峰的图像效果良好,但对于由于光照不均匀、噪声干扰较大等原因使直方图分布不呈双峰的图像,二值化效果明显变差。 3.4.1 图像二值化常用方法
为了满足图像处理应用系统自动化及实时性要求,图像二值化的阈值的选择最好由计算机自动来完成。下面列举几个阈值的自动选择算法:
(1) 平均灰度值法:以图像中所有像素灰度值的平均值为阈值。
(2) 大津法:又称最大类间差法,是基于整幅图像的统计特性,实现阈值的自动选取。其原理是把图像直方图用某一灰度值分割成两类,分别计算这两类的像素点数和灰度平均值,然后计算它们的类间方差。当被分割成的两类类间方差最大时,此灰度值就作为图像二值化处理的阈值。大津法的使用范围比较广,不论图像的直方图有
18
无明显的双峰,都能得到较满意的结果,在很多领域得到了应用和发展。但此方法依然存在一些不足,主要表现在:若目标与背景之间灰度差不明显,可能出现大块黑色区域,甚至丢失整幅图像的信息;仅利用一维灰度直方图分布,没有结合图像的空间相关信息,处理效果不好;当图像中有断裂现象或者背景有一定噪声时,无法得到预期效果。
(3) 边缘算子法:采用Laplace算子、Robert算子、Sober算子等对像素点进行灰度级增强或减弱的变换。对于灰度均匀分布的区域内的像素点,这些算子对其进行灰度减弱;对于在边缘附近的像素点,这些算子对其进行灰度增强。
由当前像素灰度值与该像素周围点局部灰度特征来确定像素的阈值。例如可以将原图像划分为一些不相交的小块,将各块图像的灰度均值作为该部块图像的阈值,在局部上采用上面的整体阈值法。
对于目标和背景比较清楚的图像,全局阈值化方法可以取得较好结果。但是如果图像的背景不均匀,或目标灰度变化率比较大,全局方法便不再适用。局部阈值法是用像素灰度值和此像素邻域的局部灰度特性来确定该像素的阈值的。当照明不均匀、有突发噪声,或者背景灰度变化较大时,局部阈值确定技术必须根据像素的坐标位置关系自动确定不同阈值,实施动态的自适应二值化处理。局部阈值选取一般将图像划分为若干子图像,在每个子图像区域上使用整体阈值法,从而可以构成整幅图像的局部阈值法(根据每个子图像确定相应的阈值,具体的阈值确定方法同全局阈值的确定类似)。用这种方法分割后的图像在不同子图像的边界处有灰度的不连续分布,因此必须采用平滑技术来消除灰度的不连续性。
局部阈值法一般用于识别干扰比较严重、品质较差的图像,相对整体阈值方法有更广泛的应用,但也存在缺点和问题,如实现速度慢、不能保证字符笔画连通性以及容易出现伪影现象(即在背景域受到噪音干扰得到笔画结果)等。比较典型的局部二值化算法有Bernsen方法、多阈值的梯度强度法、基于纹理图像的方法、最大方差法等。
4 算法设计与实现
4.1 总体设计
字符图像预处理一共有四个阶段,我对于每个阶段都采取了相应的方法对图像进行处理。并对测试结果进行了测试并取得了良好的结果。
(1)在图像灰度化阶段,我采取的是加权平均值法。根据三个分量的重要性及其
19
它指标,将三个分量以不同的权值进行加权平均运算。由于人眼对绿色的敏感度高,对蓝色的敏感度低,故可以按照不同的权值对RGB三个分量进行加权平均运算能得到比较合理的灰度图像。
(2)在图像增强阶段,我采取的是直方图增强的方法。直方图均衡化首选要先进行直方图修正,即把原图像的直方图利用灰度变换函数修正为均匀分布,然后再进行直方图均衡化。它以概率论为理论基础,运用灰度点运算实现直方图的变化,从而达到图像处理的目的。
(3)在图像滤波阶段,我采用了中值滤波。首先确定一个以某个像素为中心点的邻域,一般为方形邻域,然后将邻域中各像素的灰度值进行排序,取中间值作为中心像素灰度的新值,这里的邻域通常被称为窗口。当窗口在图像中上下左右进行移动后,利用中值滤波算法可以很好地对图像进行平滑处理。
(4)在图像二值化阶段,我采取的是全局阈值法。在二值化过程中只使用一个全局阈值T的方法。它将图像的每个像素的灰度值与T进行比较,若大于T,则取为前景色(白色);否则,取为背景色。
4.2 具体代码
A=imread('f:\\yes.jpg'); image=double(A); red=image(:,:,1); green=image(:,:,2); blue=image(:,:,3);
x=0.3*red+0.59*green+0.11*blue+0.5; A=uint8(A); x=uint8(x);
imwrite(x,'f:\\gray.bmp'); figure(1); subplot(1,2,1); imshow(A), title('原图'); subplot(1,2,2); imshow(x),
20
title('灰度图'); J=imread('f:gray.jpg'); H=histeq(J,256); subplot(2,2,1), imshow(J) title('原图') subplot(2,2,2), imshow(H) title('均衡化图')
subplot(2,2,3), imhist(J) subplot(2,2,4), imhist(H)
e=imread('f:\\gray.BMP'); [rows , cols ] = size(e); I=e;
I=imnoise(e,'salt & pepper',0.05);%加椒盐噪声 N=input('请输入一个奇数(模版尺寸阶数):') k=double(ones(N)/(N*N)); for i=(N+1)/2:(rows-((N-1)/2)) for j=(N+1)/2:(cols-((N-1)/2))
k1=double(I(i-(N-1)/2:i+(N-1)/2,j-(N-1)/2:j+(N-1)/2)); y=reshape(k1,1,N*N); y=sort(y);
hh(i,j)=uint8(y((N*N+1)/2)); end end
21
figure(1) subplot(221) imshow(e); title('原图像')
subplot(222) imshow(I);
title('加噪声后的图像')
subplot(223); imshow(hh);
title('模版选择 3X3中值滤波图像')
[A,map]=imread('f:\\gray.bmp'); figure(1); subplot(121);
imshow(A,map), title('原图'); [rows,cols]=size(A); image=double(A); for i=1:rows, for j=1:cols,
if (image(i,j) > 150) image(i,j)=255; else
image(i,j)=0; end; end, end, subplot(122)
22
imshow(image,map), title('二值化');
4.3 具体实例
在具体处理的过程中我使用了多组字符图片对系统进行测试,预处理算法对各种图片的处理效果各有不同。其中对车牌的处理收到了良好的效果,所有的步骤完成后,可以得到清晰可见车牌号码的二值化图像。对人的头像的处理不如车牌理想,但是最后还是能清晰看见人脸的轮廓。本文在下面分别具体列出了两组实例的测试结果。 4.3.1 实例一
实例一是对车牌图像的处理。图3是车牌图像的原始图。
图3 原图 Fig 3 Original image
(1)图像灰度化。我所采用的是加权值法,得到了良好的处理结果。图4是原图和处理之后的灰度图对比。
图4 原图和灰度图
Fig 4 Original image and grayscale image
(2)图像增强。对于直方图均衡化,我主要是调用系统的函数,通过对实例图的测试发现,直方图均衡化对于背景和前景之间存在较大差异的图像具有较好的效果,但是由于直方图均衡化对处理的数据不加选择,因此经过直方图均衡化处理后图像里的各类信息都有
23
可能受到增强或削弱,对于图像里的一些无用信息削弱或增强对于后期图像信息提取影响不大,如果图像里的重要信息被削弱,将使得基于变换后图像上的信息提取受到一定的影响,因此这是使用直方图均衡化时可能导致的不利影响。由于直方图均衡化是对图像的灰度变化范围进行一个非线性拉伸,因此变换后图像的灰度级将减少,这将导致图像的某些细节在变换中消失。图5为原图像和经过直方图均衡化增强的图像,以及图像的直方图在图像增强前后的对比,如图所示。
图5 直方图均衡化对比图像
Fig 5 Comparison images of histogram equilibrium
(3)图像滤波。我在具体实现的过程中采用的中值滤波算法,我通过在程序运行时读入一个n,用来定义不同的窗口大小,以满足对不同噪声类型的处理需要。
中值滤波算法对去除高斯噪声和低强度的椒盐噪声有不错的效果,但是由于它是以去窗口内像素的中值作为新图像的灰度值的,如果椒盐噪声分布范围较广且不均匀,那么进行中值处理后有可能噪声不仅没清除反而会加重噪声点的范围,所以中值滤波缺点也很明显。为了更加得检验中值滤波的效果,我在图片中加入了椒盐噪声。图6是利用中值滤波对车牌图片处理的效果对比图。
24
图6 原图和中值滤波对比图
Fig 6 Comparison images of original and median filtering
(4)图像二值化。 先取得原图的数据区指针,读入图片。每个像素依次循环,若该像素灰度值大于150,则置为255;若该像素灰度值小于或等于150,则置为0。如下图所示,车牌图有了良好的处理效果,车牌号码清晰可见,达到了处理的要求。
图7 原图和二值化图对比
Fig 7 Comparison images of original image and binary image
4.3.1 实例二
实例二是对人的头像的处理。图像的各个步骤的处理方法与实例一相同。下面是各个步骤的效果图。
(1)图像灰度化。图8是原图和处理之后的灰度图对比。
25
图8 原图和灰度图
Fig 8 Original image and grayscale image
(2)图像增强。变换后图像的灰度级将减少,这将导致图像的某些细节在变换中消失。但是图像的对比度还是有所增强。图9为原图像和经过直方图均衡化增强的图像的对比,以及图像的直方图在图像增强前后的对比,如图所示。
图9 直方图均衡化对比图像
Fig 9 Comparison images of histogram equilibrium
(3)图像滤波。为了更加得检验中值滤波的效果,我在图片中加入了椒盐噪声。
26
下图是利用中值滤波对图片处理的效果对比图。
图10 原图和中值滤波对比图
Fig 10 Comparison images of original and median filtering
(4)图像二值化。 先如下图所示,图像有了良好的处理效果,达到了处理的要求。
图11 原图和二值化图对比
Fig 11 Comparison images of original image and binary image
5 总结
通过对参考文献的阅读,在对字符图像预处理研究现状和研究内容有了一定了解基础上,本设计围绕着图像预处理的基本知识及主要处理方法如灰度变换、直方图修正特别是平滑滤波方法上展开了着重研究,并对图像滤波实现的几种主要算法进行了描述,并进行了基本的比较,而且写出了自己的程序,运用MATLAB软件进行了仿真。
27
经过本次设计的锻炼,我对图像预处理有了较为深入的了解,为以后的进一步研究打下了基础。我对MATLAB的强大功能有了充分的认识,并对其产生了浓厚的兴趣。
在图像处理方面也累积了不少经验,特别是在对软件开发工具和图像处理不很熟悉的情况下,通过自己的学习和导师的指导完成了设计任务。并在设计过程中,自己分析问题和解决问题的能力都得到了锻炼和提高,完善了自己的知识结构,加深了对知识的理解。
由于设计时间有限,本人在写出算法后编程遇到了困难,只能选取相对简单的方法进行程序编写。本设计采用的是中值滤波方法算法,只对加入了椒盐噪声的图片进行了处理,而对高斯噪声和其他噪声的去除能力还未可知,这是接下来将要探索的地方。
参考文献
[1] 李站明,徐锦钢.车牌号识别系统中的车牌图像预处理研究[J].科学技术与工程,2011,8(1):2081-2084.
[2] 彭碧霞.车牌图像自动识别系统预处理算法研究[J].武汉大学学报(工学版),2010,39(3):131-134.
[3] 董玲娇.车牌图像预处理研究[J].机电工程,2010,26(6): 107-109.
[4] 李德峰,丁玉飞,邱细亚.基于VC++车牌图像预处理方法研究[J].电子质量,2011,(11):35-37. [5] 朱光忠,郑月斋.基于多尺度Top-Hat算子的车牌图像预处理研究[J].中国科技信息,2012,12: 155-156.
[6] Yoping Huang. A template-based model for license plate recognition[C].IEEE International Conference on Networking,Sensing and Control,2012,11(2): 65-68. [7] 后俊.车牌图像分割与智能字符识别方法的研究[D],合肥:合肥工业大学,2012:1-26. [8] 杨亚莉.夏勇.车牌图像的预处理实现[J]. 武汉科技学院学报,2011,21(12):31-33. [9] 赵茜.基于图像处理的车牌识别系统的研究[D].天津:天津大学,2011:1-20. [10] 罗金凯.基于颜色划分的车牌识别研究[D].长沙:中南林业科技大学,2012: 1-18. [11] 陈轩飞.车牌识别技术的研究[D].长沙:中南大学,2010:3-16.
[12] 江治国,章飞.图像增强算法在车牌图像预处理中的研究与应用[J].河南城建学院学报,2012: 1-18.
[13] 冀光强.基于MATLAB的车牌识别技术[J]. 微计算机信息,2012:31-33.
28
[14] 刘连忠,宁海燕.基于支持向量机的车牌字符识别[J].微计算机信息,2012 :35-37. [15] 宋万里,张鸰.车牌识别中的倾斜车牌校正算法[J].科技信息,2011:107-109.
[16] 马俊莉,莫玉龙.一种基于改进模板匹配的车牌宇符识别方法[J].小型微型计算机系统,2012, 24(9): 1670-1672.
[17] 王敏,黄心汉.一种模板匹配和神经网络的车牌字符识别方法[J].华中科技大学学报,2011, 29(3):48-50.
[18] 邢博,梁德群,李文举.一种新的车牌数字及字母字符识别方法[J].辽宁师范大学学报(自然科学版),2013,28(1): 56-58.
[19] 童剑军,邹明福.车牌字符的一种精判别识别方法[J].计算机工程与应用,2010,2:223-226. [20] 黄戈祥,陈继荣,胡应添.基于ARTZ神经网络的车牌字符识别[J].计算机应用,2004,24:309-312.
[21] Xuan Du.Research and Application on License Plate Character RecognitionBased on Support Vector Machine[J],Computer Systems & Applications,2012:43-45.
[22] Lairong Chen,Ronghua Ji,Ning Xu.Research on SVM-based License PlateRecognition[J]. Journal of Highway and Transportation Research and Development,2005,23(5):128-129.
致 谢
在毕业论文完成之际,我首先要感谢周丽娟老师的悉心指导,她严谨的治学态度,一丝不苟的敬业精神给我留下了深刻的印象。感谢她在百忙之中一直督促关心着我的本科论文的写作。她的博学、勤勉以及平和的为人,使我油然而生敬意。
还要感谢何儒云老师,是她给了我这个机会加入到图像预处理项目中来,使我能够学习到许多图像处理学科前沿的知识,而且通过实际项目开发,积累了宝贵的实践经验,提高了我用MATLAB的操作和编程能力。
马上就要毕业了,四年中,我的朋友还有各位老师、同学都给予了我很大帮助。在这里,我再次对你们表示深深的感谢,祝你们今后工作学习顺利!
感谢我寝室的三位室友,在与他们的交流和讨论中我受益匪浅,我们一起战斗,互相鼓励,直至毕业设计的完满结束。他们对我的论文提出了许多中肯的修改意见,并对一些技术上的细节给予了很大的帮助。
感谢我的父母,是他们给予了最我无私的奉献、支持和鼓励。
29
因篇幅问题不能全部显示,请点此查看更多更全内容