[优秀毕业设计精品]基于MFC开发的有关数字图像处理的车牌数字识别系统.doc

上传人:laozhun 文档编号:2385764 上传时间:2023-02-17 格式:DOC 页数:31 大小:1.67MB
返回 下载 相关 举报
[优秀毕业设计精品]基于MFC开发的有关数字图像处理的车牌数字识别系统.doc_第1页
第1页 / 共31页
[优秀毕业设计精品]基于MFC开发的有关数字图像处理的车牌数字识别系统.doc_第2页
第2页 / 共31页
[优秀毕业设计精品]基于MFC开发的有关数字图像处理的车牌数字识别系统.doc_第3页
第3页 / 共31页
[优秀毕业设计精品]基于MFC开发的有关数字图像处理的车牌数字识别系统.doc_第4页
第4页 / 共31页
[优秀毕业设计精品]基于MFC开发的有关数字图像处理的车牌数字识别系统.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《[优秀毕业设计精品]基于MFC开发的有关数字图像处理的车牌数字识别系统.doc》由会员分享,可在线阅读,更多相关《[优秀毕业设计精品]基于MFC开发的有关数字图像处理的车牌数字识别系统.doc(31页珍藏版)》请在三一办公上搜索。

1、摘 要车牌识别系统(LPRS)是智能交通系统的重要组成部分。随着机动车辆数量的大幅度增加以及计算机技术的发展,人们对交通控制系统的要求显著提高。因而智能交通系统被广泛地应用于交通控制系统当中,比如高速公路收费、停车场车辆管理、违章车辆监控、交通诱导控制等场合。这使得车牌识别系统也得到了更广泛的关注。与传统的车辆管理方法比较,车牌识别系统可以大大提高交通管理的效率和水平,帮助实现车辆管理的规范化。本文主要介绍了基于MFC开发的有关数字图像处理的车牌数字识别系统。系统是利用单张包含车牌的静态图片进行识别的,整个识别过程主要分为车牌定位和字符分割和字符识别三个大的模块。而其中的字符识别是系统的核心部

2、分。字符识别目前运用的最多的就是神经网络和模板匹配的方法,本文所介绍的就是基于模板匹配的方法来实现车牌数字的识别。过程中也相应结合了特征提取、直方图统计等一系列方法。从实验得知,这种模板匹配的方法实现简单,且容易理解,在确保识别准确率的前提下,可以提高识别的效率,使得系统在比较准确地定位了车牌及分割出字符后,能更准确地实现字符的识别。关键字: 车牌识别; MFC; 模板匹配; 特征提取AbstractLicense Plate Recognition System (LPRS) is the important part of Intelligent Transportation System

3、. With the increase in the number of motor vehicles and the development of computer technology, the requirements for traffic control systems are significantly increased to people. Because Intelligent Transportation System is widely used in traffic control systems, such as highway tolling, parking ve

4、hicles management, Illegal vehicles monitoring, traffic guidance and control and so on. So it makes the license Plate Recognition System has also been a more widespread concern. Compared to the traditional methods of vehicle management, license Plate Recognition System can greatly improve the effici

5、ency and level of traffic management to help achieve the standardization of vehicle management.This paper mainly introduces the license Plate Number Recognition System which based on MFC and digital image processing. The system uses static images which contains a plate to recognize the numbers of th

6、e plates, the entire recognition process consists of three major modules, license plate location and character segmentation and character recognition. Character recognition is the core of the system. Neural network and template matching are mostly used in Character recognition currently, The Charact

7、er recognition process introduced in this paper is based on template matching method, it also uses the feature extraction, Histogram statistics and a series of methods. From the experimental results, this method is simple and easy to understand, it can improve the efficiency of recognition , and ens

8、ure the accuracy of the recognition at the same time. When the system accurately locates the license plate and segments the characters, the method can recognize the characters accurately.Key word: License Plate Recognition; MFC; Template matching; Feature extraction 目 录1 绪论11.1 研究的意义及目的11.2 研究的现状及内容

9、12 相关知识与技术32.1 数字图像处理概述32.1.1 数字图像的存储和显示32.1.2 数字图像的处理32.2 图像预处理相关技术32.2.1 图像灰度化技术32.2.2 边缘检测技术42.2.3 图像二值化技术72.3 特征提取技术72.3.1 纹理特征提取技术72.3.2 形状和结构特征提取技术82.4 图像分割技术82.5 字符识别技术82.5.1 字符归一化技术82.5.2 改进的OPTA细化算法92.5.3 模板匹配102.6 本章小结113 车牌数字识别系统的设计与实现123.1 设计目标123.2 系统分析123.3 系统数据结构的设计123.4 系统功能设计143.4.1

10、 图片预处理功能143.4.2 车牌搜索与定位的实现143.4.3 字符分割算法设计153.4.4 字符归一化思想153.4.5 字符细化163.4.6 字符识别过程设计163.5 本章小结164 系统实现与测试174.1 系统开发环境与工具174.2 实验结果174.2.1 打开车牌图片174.2.2 图片预处理174.2.3 车牌定位204.2.4 字符分割214.2.5 字符归一化和细化224.2.6 字符识别234.2.7 一键识别234.3 本章小结245 结论255.1 总结255.2 展望25参考文献26致 谢281 绪论1.1 研究的意义及目的随着现代交通技术的发展,人们生活水

11、平的提高,汽车已经成为人们日常生活中不可缺少的交通工具,且其数量也在急剧上升。这必然对交通管理提出了一个更高的要求,从而对智能交通系统的需求也越来越多。由于车牌识别系统是智能交通系统的重要组成部分,因而它也随之成为了热点问题,并得到了广泛的应用。车牌识别系统的运用大大提高交通管理的效率,有利于交通管理的科学化、规范化,同时节省了人力、物力。1.2 研究的现状及内容1.研究现状运用图象处理技术解决汽车牌照识别的研究出现于上世纪八十年代,这个阶段的研究并没有形成完整的系统体系,而是就车牌识别中的某一个具体问题进行讨论,并且通常是采用简单的图象处理技术来解决。九十年代以来,由于计算机视觉、模式识别等

12、技术的快速发展,以及计算机运行速度的不断提高,对车牌识别的研究开始进入了系统化阶段。其研究方法主要是对车牌的图像进行车牌定位,进而在所提取的车牌图像上进行字符的分割和识别。在车牌识别过程中,由于外界环境光线变化以及车牌本身由于污点、倾斜、扭曲或字符断裂等原因,车牌识别系统(LPRS)一直得不到很好的应用,而且很多方法需要大量的数值运算,没有考虑到实时处理的要求。为了解决上述由于环境影响而造成的图像退化的问题,国内外许多研究机构和公司企业采取的办法是借助昂贵的摄像设备采集高质量的图像,从而提高识别率,但这样做也造成了系统的投资成本过大,因而不适合推广应用。目前国内外有不少公司及研究机构在车牌自动

13、识别这方面有比较成功的产品。我国对智能交通系统(ITS)1的研究还处于起步阶段,但智能交通系统在现代交通系统建设中扮演着越来越重要的角色。2.研究内容本文所要研究的内容是通过识别静态的含有车牌的图片,完成车牌数字自动识别的功能。功能中主要包括车牌定位、字符分割、字符识别等过程。利用模板匹配的方法实现自动识别数字字符的功能。主要研究内容如下:(1)车牌定位的研究。先进行图像预处理,包括:图像灰度化、边缘检测、图像二值化等;车牌定位采用水平和垂直直方图统计的方法。(2)字符分割的研究。先对定位好的车牌进行预处理,根据垂直方向的直方图统计方法,定位出字符的左右边界,按左右边界将字符切割出来;再根据切

14、割出的字符定位上下界。(3)字符识别的研究。对切割出来的字符进行细化、去噪处理,再对其进行特征提取,模板也做相应操作。利用待识别字符和模板的特征进行模板匹配,从而识别出字符(数字)。2 相关知识与技术2.1 数字图像处理概述 2.1.1 数字图像的存储和显示图像采集到计算机中,是以图像文件的形式存储的,在需要使用时,由程序对这些文件进行读取以及信息处理2。1.图片的文件结构(1)头文件,用于存放图像基本信息,包括各种特征参数、像素数据和调色板数据在文件中的位置,以及文字注释等;(2)像素数据,以位图的形式存放,每像素数据对应图像相应位置上的颜色值,具体颜色值的定义由调色板数据提供;(3)调色板

15、数据,是指二值、16色、256色彩色图像的色调数据,真彩色图像的像素数据中已有颜色分量,故不再需要调色板信息。应该注意的是图像的扫描方向 (存储顺序),大多数图像文件采取的扫描方向为自上而下(如TIF和JPEG文件等),少数为自下而上(如BMP文件等)。2.图像显示图像显示过程是按照图片存储过程相反方向进行。2.1.2 数字图像的处理数字图像处理即针对在空间上离散,在幅值上量化分层的数字图像,采用一些特定数理模式进行处理,以达到系统所需图像的过程。主要包括图像变换、图像增强等预处理以及图像分析和模式识别。预处理过程输入和输出均为图像,而图像分析和模式识别过程输入是图像,输出不是图像,是图像的分

16、析和特征分类,或对图像的描述和解释3。2.2 图像预处理相关技术2.2.1 图像灰度化技术将彩色图像转化为灰度图像的过程叫做图像的灰度化。彩色图像每个像素包含R、G、B三个颜色分量,每个颜色分量有256个中值可取。而灰度图像是R、G、B三个颜色分量值相等的特殊的彩色图像。在RGB模型中,如果R=G=B时,则彩色表示一种灰度颜色,其中R=G=B的值叫灰度值,因此,灰度图像每个像素只需一个字节存放灰度值(又称强度值、亮度值),灰度范围为0到255。一般有以下四种方法对彩色图像进行灰度化:1.分量法将彩色图像中的三分量的亮度作为三个灰度图像的灰度值,可根据应用需要选取一种灰度图像。f1(i,j)=R

17、(i,j) f2(i,j)=G(i,j) f3(i,j)=B(i,j) (2.1)其中fk(i,j)(k=1,2,3)为转换后的灰度图像在(i,j)处的灰度值。2.最大值法将彩色图像中的三分量亮度的最大值作为灰度图的灰度值。f(i,j)=max(R(i,j),G(i,j),B(i,j) (2.2)3.平均值法将彩色图像中的三分量亮度求平均得到一个灰度图。f(i,j)=(R(i,j)+G(i,j)+B(i,j)/3 (2.3)4.加权平均法根据重要性及其它指标,将三个分量以不同的权值进行加权平均。由于人眼对绿色的敏感最高,对蓝色敏感最低,因此,按下式对RGB三分量进行加权平均能得到较合理的灰度图

18、像。f(i,j)=0.299R(i,j)+0.588G(i,j)+0.114B(i,j) (2.4)2.2.2 边缘检测技术边缘(Edge) 4是指图像局部亮度变化最显著的部分。边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征提取和形状特征提取等图像分析的重要基础。图像分析和理解的第一步往往是边缘检测。边缘检测可以突出图像边缘,削弱边缘以外图像区域。在汽车图像中,牌照区域内由于字符和车牌背景色差比较大,因而含有丰富的边缘(包括水平边缘、垂直边缘和斜向边缘),而其它区域则不具有这个特点,所以针对这种特征我们可以采用边缘检测算法来分离目标与背景区域。这样可

19、以明显加强车牌内部字符的边缘特性,有利于图像的分析。由于边缘检测的重要性,人们提出了许多适用于不同场合的边缘检测算法。然而在实际图像中,仅用一个算子精确检测边缘具有相当的难度,因而人们又研究适用不同尺寸的算子,如Roberts算子、Prewitt算子、Sobel算子。1.Roberts算子 Roberts算子是最古老的算子之一,是一种交差差分算子。由于它只使用当前像素的22邻域,是最简单的梯度算子,所以计算非常简单。Roberts算子计算时利用的像素数一共有4个,可以用模板对应4个像素与模板相应的元素相乘相加得到。 Roberts交叉算子为梯度幅值计算提供了一种简单的近似方法:G(i,j)=|

20、 f(i,j)-f(i+1,j+1)|+|f(i+1,j)-f(i,j+1)| (2.5)用卷积模板表示方法,上式变成:G(i,j)=|Gx|+|Gy| (2.6)其中Gx和Gy由下面的模板计算: 图2.1 Gx模板 图2.2 Gy模板Roberts算子边缘定位准,主要缺点是其对噪声的高度敏感性,原因在于仅使用了很少几个像素来近似梯度。实用于边缘明显而且噪声较少的图像分割。因此,通常用33的邻域计算梯度值。2.Sobel算子 采用梯度微分锐化图像,同时会使噪声、条纹等得到增强,Sobel算子则在一定程度上克服了这个问题。Sobel算子不像普通梯度算子那样用两个像素的差值,这就导致了两个优点:a

21、由于引入了平均因素,因而对图像中的随机噪声有一定的平滑作用。b由于它是相隔两行或两列之差分,故边缘两侧元素得到了增强,边缘显得粗而亮。 考虑到下图中点(i,j)周围点的排列: 图2.3 像素排列Sobel算子也是使用梯度幅值: (2.7)其中的偏导数用到下列公式:sx=(a2+ca3+a4)-(a0+ca7+a6) (2.8)sy=(a2+ca3+a4)-(a0+ca7+a6) (2.9)其中系c=2。其他梯度算子一样,sx 、sy用卷积模板来表示为: 图2.4 sx模板 图2.5 sy模板Sobel算子的模板也是33的,只是它的模板元素与Prewitt算子有所不同。在Prewitt算子中像素

22、邻域对当前像素产生的影响是等价的,而Sobel算子根据邻域像素与当前像素的距离有不同的权值,一般是距离越小,权值越大。Sobel算子通常用于水平和垂直边缘的一个简单检测算子。 Sobel算子和Prewitt算子都是加权平均,但是Sobel算子认为,邻域的像素对当前像素产生的影响不是等价的,所以距离不同的像素具有不同的权值,对算子结果产生的影响也不同。一般来说,距离越大,产生的影响越小。3.Prewitt算子 上述Roberts算子的模板是22的,比较常见的还有33的模板,例如Prewitt算子。 对于33的卷积掩模,在8个可能方向估计梯度,具有最大幅值的卷积给出梯度方向。Prewitt算子与S

23、obel算子的方程是一样的,只是系数c=1,所以sx 、sy用卷积模板来表示为: 图2.6 sx模板 图2.7 sy模板近似图像函数一阶导数的算子由于具有确定梯度方向的能力,有时被称作罗盘算子。对于每个算子我们只给出前面三个33掩模,其他的可以通过简单旋转得到。Prewitt算子进行计算时要用到9个像素。对于每一个方向的梯度,可以用模板对应的9个像素与模板相应的元素相乘相加得到,其计算过程与Roberts算子相似。Prewitt算子对噪声有抑制作用,抑制噪声的原理是通过像素平均。但是像素平均相当于对图像的低通滤波,所以Prewitt算子对边缘的定位不如Roberts算子。4.Laplacian

24、算子5为了突出增强图像中的孤立点、孤立线或孤立端点,在某些实际用途中常采用Laplacian算子,这个算子是旋转不变算子。上面的这些算子都是一阶导数算子,在图像处理中经常使用的还有二阶导数算子,例如Laplscian算子就是二阶微分算子。可以认为二阶导数是一阶导数的导数,也就是差分的差分。Laplacian算子就利用了二阶导数信息。Laplacian算子是近似只给出梯度幅值的二阶导数的流行方法。通常使用33的掩模,根据邻域不同可以分为4邻域和8邻域。这个算子对于边缘是敏感的。一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置,此算子可以用二次微分正峰和负峰之间的过零点来确定。 L

25、aplacian算子对噪声比较敏感,所以图像一般先经过平滑处理,因为平滑处理也是用模板进行的,所以,通常的分割算法都是把Laplacian算子和平滑算子结合起来生成一个新的模板。Laplacian算子有一个缺点是它对图像中的某些边缘产生双重响应。另外一种方法是差分法边缘检测,即是遍历图像的每一列,用后一列的像素值减去前一列的像素值,作为当前列的像素值。此方法,容易理解,实现简单,且效果也较好。2.2.3 图像二值化技术图像的二值化6即把灰度图像处理成二值图像的过程。二值化的关键是要找到合适的阈值来区分对象和背景。灰度图像二值化能显著减小数据存储的容量,并能够降低后续处理的复杂度。根据阈值选取方

26、法的不同,二值化方法主要分为三类:全局阈值法、局部阈值法和动态阈值法。1.全局阈值二值化全局阈值二值化方法是根据图像的直方图或灰度空间分布确定一个阈值,并根据此阈值实现灰度图像到二值化图像的转化。典型的全局阈值法包括Ostu方法、最大熵方法等。全局阈值方法的优点在于算法简单,对目标和背景明显分离、直方图分布是双峰的图像效果良好,但对输入图像量化噪声或不均匀光照等情况抵抗力差,应用受到限制。2.局部阈值二值化由像素(i,j)的灰度值f(i,j)和像素周围点的局部灰度特性确定阈值的方法称为局部阈值选择法。非均匀光照条件等情况虽然影响整体图像的灰度分布却不影响局部的图像性质。邻域的规定及邻域计算模板

27、的选取都是决定算法效果的关键因素。局部阈值法也存在缺点和问题,如实现速度慢,不能保证字符笔画连通性,以及容易出现伪影现象等。3.动态阈值二值化当阈值选择不仅取决于该像素阈值以及其周围像素的灰度值,而且还和该像素坐标位置有关时,称之为动态阈值选择法。由于充分考虑了每个像素邻域的特征,能更好的突出背景和目标的边界,使相距很近的两条线不会产生粘连现象,可以处理低质量甚至单峰值直方图图像。但是,这种方法的计算量很大,运算速度一般比较慢。阈值计算公式:T=Gmax-(Gmax-Gmin)/3 (2.10)图像二值化公式: (2.11)2.3 特征提取技术2.3.1 纹理特征提取技术纹理7是图像分析和识别

28、中常用的概念,但目前尚无对它正式的定义,一般说来可以认为纹理是由许多相互接近的、互相编织的元素构成,并常富有周期性。也可以认为是灰度在空间以一定的形式变化而产生的图案。主要方法有是灰度直方图统计法。直方图是图像窗口中,多种不同灰度的像素分布的概率统计。纹理是像素灰度级变化具有空间规律性的视觉表现。因此,可以根据灰度的规律性变化来找到图像中的纹理特征。2.3.2 形状和结构特征提取技术对于一个图像识别系统而言,物体的形状是一个赖以识别的重要特征。一个图像的形状和结构特征8有两种形式,一种是数字特征,主要包括几何属性和拓扑属性;另一种是有句法语言。由于我们感兴趣的是图像的形状和结构特征,所以其灰度

29、信息往往可以忽略,只要能将目标和背景分离开来即可,常用的一种技术就是图像的二值化。将感兴趣的部分标以最大灰度级,把背景标以最小灰度级。2.4 图像分割技术图像分割是把图像分割成若干特定的、具有独特性质的区域并提取出感兴趣目标的技术和过程。在对图像的研究和应用中,人们往往仅对图像的某些部分感兴趣,它们一般对应图像中特定的、具有独特性质的区域。为了分析和识别目标,需要将它们分割并提取出来。 图像分割是由图像处理转到图像分析的关键。图像分割算法的研究一直受到人们的高度重视,到目前为止,提出的分割算法已经多达上千种。基本包括以下几种算法:1.灰度阈值分割阈值化分割算法是图像分割中应用数量最多的一类。即

30、是根据阈值将图像二值化,分析二值化图像特征,按特征分割图像。2.彩色分割9对颜色的感受是人类对电磁辐射中可见部分里不同频率知觉的体现。根据分割需要将感兴趣的颜色部分分割出来。3.特殊方法的图像分割基于数学形态学的分割技术。形态学一般指生物学中研究动物和植物结构的一个分支。后来人们用数学形态学表示以形态为基础的对象进行分析的数学工具。它的基本思想是用具有一定形态的结构元素去度量和提取图像中的对应形状以达到对图像分析和识别的目的。2.5 字符识别技术2.5.1 字符归一化技术图像的归一化包括位置,大小,旋转和倾斜归一化。下面主要介绍位置归一化和大小归一化。1.位置归一化位置归一化就是把数字图像都放

31、到某一固定的位置,能够消除数字点阵位置上的偏差,并能方便数字特征描述、提取。2.大小归一化大小归一化是指对不同大小的数字图像作变换,使之成为同一尺寸大小的文字,图像大小归一化方法分为两大类:线性归一化和非线性归一化。(1)线性归一化10线性归一化是将数字图像的笔画按比例线性放缩或缩小到规定尺寸的图像,仅与原始数字图像和归一化后图像的大小有关系。设(x,y)为原图像像素点坐标,(m,n)为归一化后的像素点坐标,则其变换关系如下所示: (2.12)其中系数矩阵决定了图像的比例和旋转变换尺度,体现了图像的平移变换。如果数字图像已经经过位置归一化,且没有旋转,则上述公式可简化为: (2.13)(2)非

32、线性归一化。线性归一化的变换函数为线性函数,不能解决图像的变形问题,故提出了非线性归一化方法。非线性归一化是通过密度均衡的方法实现大小归一化,以消除输入模式的各种变形,这些方法大致分以下三种:点密度均衡法、线密度均衡法和笔画穿透数均衡法。2.5.2 改进的OPTA细化算法细化算法中的OPTA算法能满足收敛性、连接性、拓扑性和保持性,对图像的细化能达到较好的效果,但该算法细化后的图像是4邻域与8邻域意义下的细化骨架,在三叉点处细化往往不全;细化后脊线不光滑,有许多毛刺,且纹线扭曲,不在纹线中心,因此,它不满足细化性和中轴性。这会给特征值提取带来困难。另外,它采用两个大小不同的模板分两次进行运算,

33、其快速性也受到影响。因此对OPTA算法进行改进,重新构造保留模板,采用了一种新的细化算法。 图2.7消除模板图2.8 44模板 图2.9保留模板该算法采用统一的44模板如图2.8所示。具体算法如下:从图像的左上角元素开始进行,每个象素(图2中为P5)均抽取出如图2.7所示的15个相邻象素。把其中8个邻域象素(P1、P2、P3、P4、P5、P6、P7、P8、P9)与图2.7所示的8个消去模板比较,如果和8个细化模板(a).(h)中的任意一个都不匹配时,P5 保留;否则,抽取的元素再和图4所示的9 个保留模板进行比较,如果与其中任一个模板匹配的话,则P5 保留,否则P5 删去。重复上述三个过程,直

34、到没有一个象素的值被改变为止。该算法由于采用了统一的44模板,在消除多余象素的同时,可以同时考虑到连通性,不用像OPTA算法那样分两次作判断,所以简化了算法。同时,该算法对指纹图像能充分细化,但在纹线的水平和竖直方向会产生较多毛刺,且在分叉点处存在不是单象素宽的问题。2.5.3 模板匹配模板匹配11是图像识别中最具代表性的方法之一。具有算法实现容易、匹配速度快的特点。模板匹配是将从待识别的图像提取若干特征与模板对应的特征进行比较,计算图像和模板特征量之间的距离,用最小距离法判定所属类。用模板匹配法进行模式识别时通常需要事先建立标准模板库。2.6 本章小结 本章主要介绍了有关系统开发的基础知识和

35、相关算法。这些知识对系统的设计起到了一定的参考作用,也有利于对系统的理解。3 车牌数字识别系统的设计与实现3.1 设计目标本次设计的目标是根据已给出的比较清晰的含有汽车图像的图片,利用MFC和数字图像处理的一些相关算法来实现一个能够快速、准确识别出车牌数字的系统。3.2 系统分析系统设计总体思想:图3.1 总体设计流程图1.读入图像输入的图像由于受到天气影响,包括晴天、阴天、晚上等,由于光照影响和摄像机曝光的不同,再加上有些车牌老化污损、陈旧退色,这些都可能使车牌图像产生对比度不足的弊端,图像细节分辨不清,车牌字符部分不突出. 而且,对高速行进中的汽车拍摄的图像往往产生模糊、扭曲、变形等现象,

36、这些都增加了预处理的难度。而这些处理需要很复杂的过程,因为系统把读入的图片默认为比较清晰的、几乎没有倾斜角度的图片。2.图像预处理12图像预处理过程需要把图像转换成便于车牌定位的二值化图像。需要经过图像灰度化,图像增强,边缘提取,二值化操作。3.车牌定位与提取车牌的定位需要能准确地定位车牌的位置,不缺损字符,从而有利于字符的分割。4.字符分割字符的分割要求能够准确地定位字符边界,进而将车牌内的所有字符截取出来。5.字符识别应用模板匹配的算法来实现字符的识别,要求能够准确识别出车牌内部的数字。3.3 系统数据结构的设计系统中图像的处理用到CImage类,CImage类是Visual Studio

37、 中MFC提供的一个类。系统中主要用到CImage类的方法如下表:表3.1 CImage类方法方法定义说明Load(LPCTSTR pszFileName)加载图片Destroy()销毁图片对象与资源的连接GetWidth()获取图片的宽度GetHeight()获取图片的高度Create(int nWidth,int nHeight,int nBPP, DWORD dwFlags=0)创建图片资源GetPixelAddress(int x,int y)获取相应位置像素的值系统是对图像进行保存,因而设计了一个图像类CImageDib,用于存放灰度化后的图像信息,以用作车牌提取过程。具体定义如下表

38、:表3.2 自定义CImageDib类定义成员类型成员定义说明成员变量LPBYTE m_pImgData图像数据指针int m_nColorTableLength颜色表长度,多少个表项LPRGBQUAD m_lpColorTable图像颜色表指针int m_nBitCount每像素所占位数int m_imgWidth图像宽,以像素位单位int m_imgHeight图像高,以像素为单位成员函数int ComputeColorTableLength(int nBitCount)计算颜色表长度此外,系统中运用到了许多有关数字图像处理的操作类,因此定义了一个图像操作类CImageOperate,它是

39、一个方法类,具体定义如下表:表3.3 方法类CImageOperate方法定义说明static void CImageToMyDib(CImage * image, CImageDib * myImage)将CImage类对象转换成自定义类型static void ColorToGray(CImage * image, CImageDib * myImage)将真彩图转换成灰度图像static void EdgeExtraction(CImage * image,CImageDib * myImage)水平差分边缘提取static void ToBinary(CImage * image, C

40、ImageDib * myImage, BYTE threshold)二值化static BOOL FindPlate(CImage * image, int * plate, int bottom)车牌定位static void CutPlate(CImage * image, CImageDib * myImage, int * plate)车牌切割static void OPTA_Thinning(CImage * image, CImageDib * myImage)OPTA细化算法static int CompareTemple1(int t3, int f4, int n)OPTA

41、细化算法与消去模板比较static int CompareTemple2(int t4, int f4, int n)OPTA细化算法与保留模板比较static void FindOnlyBlack(CImage * image, CImageDib * myImage)去掉孤立点3.4 系统功能设计3.4.1 图片预处理功能1.图像灰度化采用2.2.1中的方法4,加权平均法,利用公式(2.4)。2.边缘提取采用2.2.2中的差分法边缘提取。针对系统的图像要求,利用差分法边缘提取可以达到很好的边缘提取效果,而且实现简单,容易理解。3.图像二值化采用2.2.3中的公式(2.10)。但在系统中因为

42、边缘提取用的是差分法,所以整个图像的灰度值有大幅度的下降,所以经过实验统计重新设定二值化阈值为公式所计算出的阈值的1/3。图像二值化后前景点(即字符)为白色,背景点为黑色。为方便显示和观察,将其转换为前景点为黑色,背景点为白色。3.4.2 车牌搜索与定位的实现车牌定位方法13的出发点是利用车牌区域的特征来判断牌照,将车牌区域从整幅车辆图像中分割出来。车牌自身具有许多的固有特征,这些特征对于不同的国家是不同的。从人的视觉角度出发,我国车牌具有以下可用于定位的特征:1.车牌宽440mm,高140mm,宽高比3.14.内部字符宽45mm,高90mm,间隔符10mm,每个字符间距12mm;2.车牌有一

43、个连续或由于磨损而不连续的边框;3.车牌底色一般与车身颜色、字符颜色有较大差异,字符和牌照底色在灰度值上存在较大的跳变,有较多的跳变点出现;4.数字字符纵向是连通的。跳变点14:图像中像素灰度值变化比较大的点。由车牌上述的特征可以知道,车牌字符和牌照底色在灰度值上存在较大的跳变,因此可以根据图像中水平方向的跳变点的变化规律来进行车牌位置上的纹理特征的提取,定位车牌的上下边界。定位出上下边界之后,可计算车牌的近似高度,根据车牌的宽高比例,近似计算出车牌的宽度,此时则可得出一个自定义的固定大小的车牌区域。在查找到的车牌上下界范围内,利用得出的区域大小横向遍历图像,统计区域内前景点数,满足要求即认为

44、找到车牌区域,否则继续搜索,直到找到符合要求的区域。流程图如下图3.2: 图3.2 车牌定位流程图 图3.3 字符分割流程图3.4.3 字符分割算法设计利用直方图统计方法15对已提取出的车牌图像进行分析处理。由车牌中字符的特点可知,各字符间存在一定间隔,则车牌的直方图中必然后出现连续的波峰和波谷。波谷处即为字符的边界处。因此,按列统计二值化后的车牌图像,计算出所有列中含前景点最少的点数。再案例扫描图像,一次查找相邻的含有最小像素点数的两列(字符的两个边界),计算两列的间距,如果小于2,则是分隔符,可确定字符的边界,并依据边界将每个字符从车牌图像中截取出来。依据2.4中的灰度阈值分割方法,利用直方图统计法,找到每个字符的左右边界点,判断是否为字符,是的话保留左右边界,否则向后查找。流程图如图3.3。3.4.4 字符归一化思想由于系统对图像的要求以及字符切割的处理,此处不考虑字符位置归一化16问题,主要实现字符大小的归一化。利用线性归一化思想,主要做法如下:设切割出的字符图像大小为MN,模板大小为LK,则归一化字符图像为LK大小。主要思想为,将字符图像均匀分成LK块区域,分别统计各块中字符前景点的个数,如果大于块内像素数的50%,则认为此块在转换成L

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号