车牌识别论文.doc_第1页
车牌识别论文.doc_第2页
车牌识别论文.doc_第3页
车牌识别论文.doc_第4页
车牌识别论文.doc_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

河南理工大学毕业设计(论文)说明书摘 要车牌识别问题作为现代交通工程领域中研究的重点和热点问题之一,受到越来越多人们的关注。智能交通系统是目前世界交通运输领域的前沿研究课题,车辆牌照的自动识别系统作为智能交通系统中的一项重要技术,结合了数字图像处理,人工智能,模式识别,自动化等多项技术得到了广泛的应用。车牌识别算法一般可以分为车牌定位、牌照上字符的分割和字符识别三个主要组成部分。从车辆图像中准确的定位分割出车牌区域是车牌识别中最为关键的步骤之一。车牌图像分割是图像提取中的重要组成部分,只有有效地完成分割,才能进一步提取目标特征并识别目标。字符识别目前国内外,已经开发出了成熟的算法。本文提出了一个完整的车辆牌照识别方法。主要内容包括综述了国内外流行的车辆牌照识别技术,分别介绍了车辆牌照系统的每一个组成部分和国内外的识别方法。采用了基于灰度图像的二值化算法对图像进行二值化,提出了基于连通域搜索的车辆牌照算法,根据车牌照本身的特点进行数学形态学变换,提取了车辆牌照区域特征,采用数学形态学和投影法进行精确定位。本文还采用了面向车牌的基于灰度模型的车牌区域二值化算法进行车牌区域的二值化。提出了结合垂直投影和连通域对车牌区域进行字符切分,很好的解决了字符粘连和过度切分的问题。在个别字符难以连通的区域,系统采用了默认识别的方式进行分类处理,切分结束后提取字符的加权组合特征,利用模板匹配法进行车牌照字符识别。本文提出的静态车牌识别方法是对现有的车牌识别自动技术的进一步提高,提高了车牌识别系统的识别速度、准确性,扩大了适用范围。使车牌识别系统能够真正的实现智能交通管理系统对交通情况进行实时监控的要求。实验表明,本文介绍的车辆牌照自动识别方法速度快,适合应用在实时系统中,适应性和抗干扰能力强,能够在不同环境下进行正常的工作,识别率较高,能够做为商用智能车牌识别开发系统的参考资料。关键词车牌照识别;二值化;字符分割;数学形态学;投影法;灰度化AbstractLicense plate recognition problem as the area of modern traffic engineering study one of the key and hot issues, are more and more attention. Intelligent Transportation Systems is the worlds advanced research in communications and transportation issues, license plate recognition system for intelligent transportation system is an important technique that combines image processing, pattern recognition and automation technology is now more widely applied . License plate recognition algorithm can generally be divided into the license plate location, the license on the character segmentation and character recognition of three main components. Images from the vehicle position accurately segmented plate license plate recognition in the region is the most critical steps. Image segmentation is an important part of the extraction, only the efficient completion of segmentation, in order to further target feature extraction and target identification. Character recognition at home and abroad, has developed a sophisticated algorithm.Vehicle license plate is the most clear and accurate, the only sign. Vehicle license plate recognition system as a dedicated computer vision system that can automatically take the road vehicle dynamic data, effectively determine and extract a plate of image data in real time and accurate identification of the vehicle license characters. This paper presents a complete vehicle license plate recognition. The main contents include summarized popular at home and abroad vehicle license identification technology, introduced the system of vehicle license for each component and domestic and international recognition. Method based on gray image binarization algorithm on binary images is proposed based on the vehicle license plate connected domain search coarse classification algorithm, according to the characteristics of vehicle license itself to mathematical morphology transform, feature extraction of the vehicle license area, projection method using mathematical morphology and accurate positioning. This article also used for the gray model-based license plate license plate license plate binarization algorithm binary region. Proposed combination of the vertical projection and connected domain on the license plate character segmentation region, good adhesion and excessive settlement of the character segmentation problem. Difficult in the individual character of regional connectivity, the system uses the default approach to classification identification, character segmentation after the end of a weighted combination of feature extraction using template matching method for vehicle license plate character recognition. In this paper, the static plate recognition is automatic license plate recognition of existing technologies to further improve and enhance the license plate recognition system, recognition speed, accuracy, and expanded the scope of application. License plate recognition system to enable the realization of truly intelligent traffic management system to monitor traffic conditions in real-time requirements. Experimental results show that the text describes the vehicle license plate recognition method is faster, ideal for use in real-time systems, adaptive and anti-jamming ability, to normal in different work environments, the recognition rate is high, the actual smart plate Development of the system are identified for reference. Keywords Vehicle license plate recognition; binary; character segmentation; mathematical morphology; projection; gradation目 录1 前 言11.1 课题背景及意义11.2 国内外车牌系统的研究现状21.3 车牌识别过程的技术应用52 车牌识别系统的研制72.1 系统的设计原则72.2 系统的结构92.3 开发环境103 车辆图像预处理133.1 图像的灰度化133.2 图像的增强153.3 图像的边缘检测163.4 图像的二值化194 车牌区域的定位224.1 车牌定位方法224.2 数学形态学方法234.2.1 腐蚀244.2.2 膨胀244.2.3 开启和闭合244.3 车牌搜索254.4 实验及结果分析315 车牌字符识别的预处理325.1 识别的技术路线325.1.1 字符识别技术概念325.1.2 常用字符识别技术简介325.1.3 压缩模板匹配技术345.1.4 样本集分类预处理345.1.5 压缩模板匹配算法355.1.6 压缩模板生成算法355.1.7 算法分析375.1.8 压缩模板集构造与扩展385.1.9 基于压缩模板集的模板匹配395.2 倾斜度调整425.3 字符分割435.4 字符的紧缩重排505.5 实验及结果分析52全文总结54致 谢56参考文献58601 前 言1.1 课题背景及意义随着经济的发展,汽车已经逐渐地进入大多数人的家庭,使人们的出行更加方便。但是汽车数量的急剧增加也严重加大了交通的负担,城市交通的拥挤引起人们的很多不满。如何有效地进行交通管理,越来越成为各国政府和有关部门所关注的焦点问题。针对交通迅速发展所引起的一系列问题,欧美国家首先提出了智能交通系统(ITS)这一概念,期望以信息技术来解决交通管理中的问题。自这一方法提出以来,获得了很大的发展,各国政府也纷纷制定本国的智能交通系统发展战略,目前智能交通系统已成为世界交通二十一世纪的重要发展方向。随着近年城市交通智能化的深入,智能交通系统正向系统化方向发展。目前的ITS系统不再是简单的车辆处理系统,而是涵盖道路监控,车辆记录,违章处理,高/快速路管理,智能停车管理等多个方面的综合化系统。高速公路的不断发展和车辆管理体制的不断完善,为智能交通管理系统进入实际应用领域提供了契机。基于现代计算机技术的牌照自动识别监控系统正是在这种应用背景下研制出来的,它能够自动,实时地检测车辆,识别汽车牌照,从而监控车辆的收费,闯关,欠费及其各种舞弊现象。该系统是在交通监控的基础上,引入了数字摄像技术和计算机信息管理技术,采用先进的图像处理,模式识别和人工智能技术,通过对图像的采集和处理,获得更多的信息,从而达到更高的智能化管理。汽车牌照自动识别系统可以广泛安装于公路收费站,停车场,十字路口等交通关卡处,使收费站的管理更严密,更科学。作为核心技术之一,车辆牌照识别(LPR)技术是公安执法系统,高速公路自动收费系统,城市道路监控系统,智能停车场管理系统等诸多ITS相关应用系统的重要一环,可以大大简化人的劳动,消除人为干扰,减少乃至杜绝出错的可能。相对于射频信号识别和条形码识别技术,有两大优点:(1)不需要在汽车上安装专门的条形码或射频识别标识;(2)LPR系统本身是基于视频技术的识别系统,可方便地进行图像回放,检索。目前,车牌识别技术的用途主要有以下几个方面:(1)城市交通:交通路口流量统计,智能交通违章监摄管理;(2)高速公路:自动收费,自动车辆登记,违章记录;(3)公安系统:肇事/失窃/犯罪车辆监测;(4)军事要塞,机关,宾馆:车辆自动化管理;(5)停车场及居民小区:进出车辆管理,自动计费。车牌识别是智能交通系统的重要组成部分,本文以汽车牌照自动识别技术作为研究背景,以静态车辆图像为主要对象,深入研究了计算机图像处理,人工智能,模式识别等背景知识,探索了用数字图像知识进行车牌识别的方法。本文主要针对车牌自动识别系统涉及到的一些关键技术进行了研究,重点探讨了在较为复杂背景下的车牌定位,字符分割及其模板匹配算法的车牌字符识别算法,同时对神经网络识别字符的算法进行试探性的学习。在车牌定位方面,本文根据投影法和数学形态学方法提出了一种新的车牌定位方法。与其它方法相比,该方法对车牌在图像中的位置,拍摄角度,距离,光照,车牌的背景没有太严格的限制,并能一次定位出图像中的车牌准确位置。另外,算法的处理时间也满足实时性要求。在车牌字符的分割方面,本系统使用了有效的方法进行车牌倾斜矫正,图像的二值化操作以及噪声的消除。并通过对车牌的灰度投影图的分析有效准确地把车牌字符分割出来。在车牌识别上,本系统采用神经网络进行了车牌识别试探。通过在输入特征,网络结构,训练样本上的学习与试验,在识别上取得了不错的效果,在此基础了最终利用模板匹配的方法进行了准确的车牌识别,取得了良好的效果。1.2 国内外车牌系统的研究现状LPR系统主要由三部分组成:车牌定位、字符分割、字符识别。从20世纪90年代初(1988年),国外的研究人员就已经开始了对LPR系统的研究,其主要途径就是对车牌的图像进行分析,自动提取车牌信息,确定汽车牌号。在车牌识别过程中,虽然运用了很多的技术方法,但由于外界环境光线变化、光路中有灰尘、季节环境变化及车牌本身比较模糊等条件的影响,使得LPR系统一直得不到很好的应用,而且很多的方法都需要大量的数值计算,没有考虑到实时处理的要求。为了解决图像恶化的问题,目前国内外的研究机构或公司企业采取的办法是采用主动红外照明摄像或使用特殊的传感器来提高图像的质量,继而提高识别率,这样做的同时也造成了系统的投资成本过大,应用领域变小,不适合普通的推广。从20世纪90年代初,国外的研究人员就已经开始了对汽车牌照识别的研究。以色列Hi-Tech公司的See/Car System系列,香港Asia VisionTechnology公司的VECON产品,新加坡Optasia公司的VLPRS系列都是比较成熟的产品。其中VECON和VLPRS产品主要适合于香港和新加坡的车牌,Hi-Tech公司的See/CarSystem有多种变形的产品来分别适应某一个国家的车牌。See/Car Chinese系统可以对中国大陆的车牌进行识别,但都存在很大的缺陷,而且不能识别车牌中的汉字,另外日本、加拿大、德国、意大利、英国等各个西方发达国家都有适合本国车牌的识别系统。各个国家的产品虽然不同,但基本上都是基于车辆探测器的系统,设备投资巨大。国内在90年代也开始了车牌识别的研究。目前比较成熟的产品有中科院自动化研究所汉王公司的汉王眼,亚洲视觉科技有限公司、深圳吉通电子有限公司、中国信息产业部下属的中智交通电子有限公司等也有自己的产品,另外西安交通大学的图像处理和识别研究室、上海交通大学的计算机科学和工程系、清华大学人工智能国家重点实验室、浙江大学的自动化系等也做过类似的研究。通常处理时为了提高系统的识别率,都采用了一些硬件的探测器和其他的辅助设备。上述方法,尽管在一定的条件下能够分割出车牌,但车牌识别系统大多是利用摄像机室外拍摄汽车图像,存在许多客观的干扰,如天气、背景、车牌磨损、图像倾斜等因素,因此定位并不十分理想。车牌定位是解决图像处理的实际问题,方法多种多样,它可以是先前方法的改进,也可以是独辟蹊径的创新,也可以是新老方法的结合。对一些复杂图像应用某些数学工具不仅可以加快处理速度而且可以改善和优化处理结果。所以有必要对车牌定位方法进一步的研究。字符分割的任务是把多行或多字符图像中的每个字符从整个图像中切割出来成为单个字符。对于字符分割的问题常常不被重视,但是字符的正确分割对字符的识别又很关键。由于各种因素的影响,使得字符分割的复杂性大,目前的字符分割的算法一直在不断完善。针对车牌图像的字符分割,是字符分割的一个具体应用,目前人们根据车牌字符的特征已提出了一些算法,如:基于先验知识的分割算法、基于投影轮廓和拓扑结构的分割算法等。但是考虑到车牌中字符可能存在的粘连、断裂情况,字符分割技术仍需要进一步改进。字符识别可以被认为是属于印刷体文字识别的范畴,目前清晰图像的印刷体字符识别问题在OCR(Optical Character Recognition)产品中有较好的实现,其关键在于特征提取和分类器的组织。识别方法从传统的单一特征抽取和单一分类方法发展为采用多特征抽取和多分类方法,并多种形式混合,从而解决一个复杂的问题。另外识别方法从单字识别发展为基于多字识别模型的集群识别,从而大量融汇语言信息,借助上下关联校正分类结果,有效提高识别率。与此相比,车牌字符的识别研究仍相对滞后,目前仍没有相对成熟的系统。尽管如此也有大量的学者从事车牌字符识别的研究。现在己有了一些比较成熟的方法,根据提取的特征,主要分为两大类:结构法和统计法。结构方法是发展最早的一种方法,它的基本思想是把字符图像分割化为若干的基元,例如笔划、拓扑点、结构突变点等,然后和模板比较进行判别。主要的方法有基于轮廓、笔划和骨架的方法。统计法比结构法起步较晚,它往往依赖于大量的原始样本和数值计算。统计方法的特征提取要从原始数据提取出与分类相关的信息,使得类内差距极小化,类间差距极大化,要求特征对同一字符类的形变应该尽量保持不变。主要的方法有基于K-L变换、Gabor变换的。车牌字符识别的研究在技术上已经取得了很大突破,然而新方法仅停留在理论上或者限定在某一范围内,离实用化还相差较远,因而车牌字符识别的研究仍有很长的路要走。总之,车牌识别系统的研究由于受到多方面的限制,其技术还存在着一些不足。但现代智能交通的发展,使其具有巨大的应用潜力。相信随着研究的不断深入,车牌识别技术肯定会逐步走向成熟。1.3 车牌识别过程的技术应用 图1-1 牌照识别示意图本文对车牌识别系统中的图像预处理、车牌定位、字符分割和字符识别等环节涉及到的技术、算法以及系统整体设计作了全面的论述,并与已有方案进行了比较,对部分关键算法进行了设计和改进,其中在车牌识别的整个过程中用到的关键技术如下: (1)图像预处理:采用灰度变换、对比度增强、图像平滑、边缘检测、二值化等方法对图像进行了处理,提高了图像的质量,强化了图像区域。 (2)车牌定位:这是车牌识别系统中至关重要的一步,本文采取了基于边缘点图,根据车牌区域的横向竖向纹理特征对车牌在预处理的基础之上进行定位,在定位的过程中运用的投影法和数学形态学及其图像腐蚀的图像处理算法,具有较高的车牌定位准确率。 (3)字符分割:首先对分割出来的车牌牌照区域进行二值化处理,然后 利用连通域法分割得到单独的字符,并对字符进行了归一化处理,便于下一步字符识别。 (4)字符识别:采用模板匹配的方法,对汉字、字母、数字字符进行快速识别,取得了较高的识别率和可靠性。 用采集到的100多幅汽车图片作为实验样本数据,用纯软件的方法实现了车牌字符的自动识别,达到了较高的识别率。一个具体的车牌识别系统主要是利用汽车的前视或后视图像,完成车辆自动定位与识别。一般过程是:彩色汽车图像,汽车图像灰度化,图像灰度拉伸,图像边界模板运算,得到几块候选区域,根据特征确定牌照,切割出牌照,去噪声,滤波,二值化,提取最终的牌照。其核心过程主要包括图像采集,图像预处理,车牌定位,车辆字符分割,字符识别五部分。车辆识别技术的关键在于后面的三个部分:车辆定位,字符分割和字符识别。而本文的着眼点也是希望在这三个方面对现有方法进行改进,尤其是在字符识别上使其更具有实用前景。 2 车牌识别系统的研制2.1 系统的设计原则由于目前图像识别技术理论水平较低,实现车号自动识别的难度比较大,本系统在前人经验的基础之上作了一些改进。原来的识别软件识别速度较慢,而且识别率也较低,同时受图像大小的影响比较大。经过分析,发现识别速度慢的主要原因是找到车牌的时间较长。于是就分析车牌的特点,发现车牌的图像明暗分明,对比度较大,纹理差别大,沿水平方向扫描,利用循环条件找出二值跳变点数目大于14的最上一行,同理从下往上扫描找到车牌区域的最下一行。同理可以找到车牌区域的左右边界。本程序的车牌识别是基于模板匹配的高清车牌识别系统,模板库越丰富车牌识别率越高,但识别速度会下降,因为每个模板都要去匹配和运算,本程序完全用VC+6.0 Windows API函数实现,无任何其他控件,算法如下:(1)图象预处理-灰度-二值(2)从下往上搜索车牌位置,根据字符跳变,确定车牌位置,因此图象中车牌以下位置不能叠加字符,否则影响识别,同理求出车牌下,左,右边界(3)定位后-分割字符-进行模板匹配运算(4)输出识别结果。汽车牌照自动识别技术是一项利用车辆静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。通过对图像的采集和处理,完成车牌自动识别功能,能从一幅图像中自动提取车牌图像,自动分割字符,进而对字符进行识别.其硬件基础一般包括触发设备(监测车辆是否进入视野)、摄像设备、照明设备、图像采集设备、识别车牌号码的处理机(如计算机)等,其软件核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能称之为视频车辆检测。一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别等几部分。当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。车辆检测可以采用埋地线圈检测、红外检测、雷达检测、视频检测等多种方式。采用视频检测可以避免破坏路面、不必附加外部检测设备、不需矫正触发位置、节省开支,而且更适合移动式、便携式应用的要求。具备视频车辆检测功能的牌照识别系统,首先对视频信号中的一帧(场)的信号进行图像采集,数字化,得到对应的数字图像;然后对其进行分析,判断其中是否有车辆;若认为有车辆通行,则进入到下一步进行牌照识别;否则继续采集视频信号,进行处理。系统进行视频车辆检测,需要具备很高的处理速度并采用优秀的算法,在基本不丢帧的情况下实现图像采集、处理。若处理速度慢,则导致丢帧,使系统无法正确检测到行驶速度较快的车辆,同时也难以保证在有利于识别的位置开始识别处理,影响系统识别率。因此,将视频车辆检测与牌照自动识别相结合具备一定的技术难度。 为了进行牌照识别,需要以下几个基本的步骤:牌照定位,定位图片中的牌照位置;牌照字符分割,把牌照中的字符分割出来;牌照字符识别,把分割好的字符进行识别,最终组成牌照号码。牌照识别过程中,牌照颜色的识别依据算法不同,可能在上述不同步骤实现,通常与牌照识别互相配合、互相验证。(1)牌照定位自然环境下,汽车图像背景复杂、光照不均匀,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。(2)牌照字符分割 完成牌照区域的定位后,再将牌照区域分割成单个字符,然后进行识别。字符分割一般采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一些其他条件。利用垂直投影法对复杂环境下的汽车图像中的字符分割有较好的效果。 (3)牌照字符识别 字符识别方法目前主要有基于模板匹配算法和基于人工神经网络算法。基于模板匹配算法首先将分割后的字符二值化,并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。基于人工神经元网络的算法有两种:一种是先对待识别字符进行特征提取,然后用所获得特征来训练神经网络分配器;另一种方法是直接把待处理图像输入网络,由网络自动实现特征提取直至识别出结果。实际应用中,牌照识别系统的识别率与牌照质量和拍摄质量密切相关。牌照质量会受到各种因素的影响,如生锈、污损、油漆剥落、字体褪色、牌照被遮挡、牌照倾斜、高亮反光、多牌照、假牌照等等;实际拍摄过程也会受到环境亮度、拍摄亮度、车辆速度等等因素的影响。这些影响因素不同程度上降低了牌照识别的识别率,也正是牌照识别系统的困难和挑战所在。为了提高识别率,除了不断的完善识别算法,还应该想办法克服各种光照条件,使采集到的图像最利于识别。2.2 系统的结构系统由视频源,车牌预处理模块,车牌定位模块,字符分割模块,字符识别模块构成,每一个识别模块均保存识别结果。实验环境为采用顶星处理器,1G内存,VC+6.0编译器。实验系统的输入视频可以直接由电脑连接数字摄像机,直接处理输入的视频流,也可以用经过采集的保存在电脑硬盘上的视频AVI录像作为视频输入。车牌照定位模块处理输入的视频流,实时截取当前帧的图像进行车牌照定位,如果该画面存在车辆牌照,则保存该帧图像,保存车辆牌照区域图像,并将车辆牌照区域送至字符切分模块。如果该帧图像不存在车牌区域,则直接处理下一帧图像。字符切分模块将输入的车牌照区域进行切分,得到若干个字符切分图像,保存并输出到字符识别模块。字符识别模块对字符切分输出的每一个字符图像进行识别,输出识别结果。2.3 开发环境Visual C+6.0是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C+1.0后,随着其新版本的不断问世,Visual C+已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了Visual C+.NET(Visual C+7.0),但它的应用的很大的局限性,只适用于Windows 2000,Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C+6.0为平台。Visual C+6.0不仅是一个C+编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrated development environment,IDE)。Visual C+6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导Class Wizard等开发工具。 这些组件通过一个名为Developer Studio的组件集成为和谐的开发环境。Visual C+它大概可以分成三个主要的部分:(1)Developer Studio。这是一个集成开发环境,我们日常工作的99%都是在它上面完成的,再加上它的标题赫然写着Microsoft Visual C+,所以很多人理所当然的认为,那就是Visual C+了。其实不然,虽然Developer Studio提供了一个很好的编辑器和很多Wizard,但实际上它没有任何编译和链接程序的功能,真正完成这些工作的幕后英雄后面会介绍。我们也知道,Developer Studio并不是专门用于VC的,它也同样用于VB,VJ,VID等Visual Studio家族的其他同胞兄弟。所以不要把Developer Studio当成Visual C+, 它充其量只是Visual C+的一个壳子而已。(2)MFC。从理论上来讲,MFC也不是专用于Visual C+,Borland C+,C+Builder和Symantec C+同样可以处理MFC。同时,用Visual C+编写代码也并不意味着一定要用MFC,只要愿意,用Visual C+来编写SDK程序,或者使用STL,ATL,一样没有限制。不过,Visual C+本来就是为MFC打造的,Visual C+中的许多特征和语言扩展也是为MFC而设计的,所以用Visual C+而不用MFC就等于抛弃了Visual C+中很大的一部分功能。但是,Visual C+也不等于MFC。(3)Platform SDK。这才是Visual C+和整个Visual Studio的精华和灵魂,虽然我们很少能直接接触到它。大致说来,Platform SDK是以Microsoft C/C+编译器为核心,配合MASM,辅以其他一些工具和文档资料。上面说到Developer Studio没有编译程序的功能,那么这项工作是由谁来完成的呢?是CL,是NMAKE,和其他许许多多命令行程序,这些我们看不到的程序才是构成Visual Studio的基石。本系统利用Visual C+6.0的集成开发,一个框架的应用总离不开一个开发环境,MFC也不例外,它采用Visual C+开发环境。相关算法实现的类和方法。默认情况下,MFC 应用程序向导用文档类和视图类创建应用程序主干。MFC 将数据管理分成这两类。文档存储数据和管理数据的打印,并协调更新多个数据视图。视图显示数据并管理用户与数据之间的交互,包括选择和编辑。在此模型中,MFC 文档对象将数据读入或写入永久存储区。该文档还可能提供到数据所驻留的任何位置(如在数据库中)的接口。一个单独的视图对象可管理数据显示,包括从在窗口中呈现数据到用户选择和数据编辑。该视图从文档获取显示数据,并将任何数据更改传递回文档。尽管可以容易地重写或者忽略文档/视图的分离,但在大多数情况下都有颇具说服力的理由需要遵循此模型。最有说服力的理由之一是在需要同一文档的多个视图时,例如同时需要电子数据表格和图表视图。文档/视图模型使一个单独的视图对象得以表示每个数据视图,而对所有视图通用的代码(例如计算引擎)可以驻留在文档中。文档还承担在每次数据更改时更新所有视图的任务。MFC 文档/视图结构使支持多视图、多文档类型、拆分窗口和其他有价值的用户界面功能变得容易。对用户和您(程序员)而言,MFC 框架中可见性最大的部分就是文档和视图。在用框架开发应用程序的工作中,编写文档和视图类占了大部分。文档/视图的核心是四个关键类:(1)CDocument(或 COleDocument)类支持用于存储或控制程序数据的对象,并为程序员定义的文档类提供基本功能。文档表示数据单元,用户一般用文件菜单上的打开命令打开它,并用文件菜单上的保存命令保存它。(2)CView(或它的许多派生类之一)为程序员定义的视图类提供基本功能。视图被附加到文档并在文档和用户之间充当中介:视图在屏幕上呈现文档的图像并将用户输入解释为对文档的操作。视图还为打印和打印预览呈现图像(3)CFrameWnd(或其变体之一)支持在文档的一个或多个视图周围提供框架的对象。CDocTemplate(或 CSingleDocTemplate 或 CMultiDocTemplate)支持一个对象,该对象协调给定类型的一个或多个现有文档并对创建该类型的正确文档、视图和框架窗口对象进行管理。类库中的文档/视图实现将数据本身同其显示分开,并且与用户对数据的操作分离。对数据的所有更改都通过文档类管理。视图调用此接口来访问和更新数据。文档、与文档关联的视图以及给视图加框架的框架窗口都用文档模板创建。文档模板负责创建和管理属于同一种文档类型的所有文档。(4)CApp主要负责管理整个应用程序。3 车辆图像预处理3.1 图像的灰度化图像的灰度化处理的基本原理:将彩色图像转化成为灰度图像的过程成为图像的灰度化处理。彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255种值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。而灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,由于颜色值的取值范围是0到255间,所有像素点的变化范围为256种,所以在数字图像处理种一般先将各种格式的图像转变成灰度图像以使后续的图像的计算量变得少一些。灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。图像的灰度化处理可用三种方法来实现:(1)使求出每个像素点的R、G、B三个分量的平均值,然后将这个平均值赋予给这个像素的三个分量。(2)根据YUV的颜色空间中,Y的分量的物理意义是点的亮度,由该值反映亮度等级,根据RGB和YUV颜色空间的变化关系可建立亮度Y与R、G、B三个颜色分量的对应:Y=0.3R+0.59G+0.11B,以这个亮度值表达图像的灰度值。(3)最大值法(Maximum):R=G=B=Max(R,G,B),这种方法处理后灰度图象的亮度会偏高。本系统也就是基于该方法对车牌图像进行二值化处理的。该方法需要调用颜色调色板,将调色板中的颜色变量经过转换,使RGB各分量值等于Y得到灰度图像。具体实现代码如下:for (row=0;rowlHeight;row+)for (col=0;colpalettepDoc-ImgDatarow*lHeight+col.rgbRed*0.3+pDoc-palettepDoc-ImgDatarow*lHeight+col.rgbGreen*0.59+pDoc-palettepDoc-ImgDatarow*lHeight+col.rgbBlue*0.11;pDoc-palettepDoc-ImgDatarow*lHeight+col.rgbRed=gray;pDoc-palettepDoc-ImgDatarow*lHeight+col.rgbGreen=gray;pDoc-palettepDoc-ImgDatarow*lHeight+col.rgbBlue=gray;IsNewBitmap=true;IsNewFile=true;pDoc-UpdateAllViews(NULL);图像灰度化转换前后对比:图3-1 彩色图像转换前图3-2 图像灰度化后3.2 图像的增强由于噪声、光照等外界环境或设备本身的原因,通常我们所获取的原始数字图像质量不是很高,因此在对图像进行边缘检测、图像分割等操作之前,一般都需要对原始数字图像进行增强处理。图像增强主要有两方面应用,一方面是改善图像的视觉效果,另一方面也能提高边缘检测或图像分割的质量,突出图像的特征,便于计算机更有效地对图像进行识别和分析。图像增强是图像处理最关键的研究问题之一,图像增强按作用域可分为两类,即空域处理和频域处理。空域处理是直接对图像进行处理,而频域处理则是在图像的某个变化域内,对图像的变换系数进行运算,然后通过逆变换获得图像增强效果。本文主要对空域增强法中的直方图均衡进行分析并用VC + 6.0进行算法实现。当前图像处理在算法实现中主要应用Matlab 仿真工具,但Matlab运行效率较低,且可移植性和实用性均不太理想。与Java和C#等其他高级语言相比,VC+在程序运行效率、内存使用的可控性和编程的灵活性上均具有较大的优势,因此本文采用VC + 6.0 集成开发环境,以达到算法快速有效地执行,同时增强了算法的可移植性。3.3 图像的边缘检测边缘提取以及边缘增强是不少图像处理软件都具有的基本功能,它的增强效果很明显,在用于模式识别的应用中,图像边缘也是非常重要的特征之一。图像边缘保留了原始图像中相当重要的部分信息,而又使得总的数据量减小了很多,这正符合特征提取的要求。基于本系统,对车牌图像预处理的第一步是灰度化,这里我们只考虑灰度图像,用于图像识别的边缘提取比起仅仅用于视觉效果增强的边缘提取要复杂一些。要给图像的边缘下一个定义还挺困难的,从人的直观感受来说,边缘对应于物体的边界。图像上灰度变化剧烈的区域比较符合这个要求,我们一般会以这个特征来提取图像的边缘。但在遇到包含纹理的图像上,这有点问题,比如说,图像中的人穿了黑白格子的衣服,我们往往不希望提取出来的边缘包括衣服上的方格。但这个比较困难,涉及到纹理图像的处理等方法。好了,既然边缘提取是要保留图像的灰度变化剧烈的区域,从数学上,最直观的方法就是微分(对于数字图像来说就是差分),在信号处理的角度来看,也可以说是用高通滤波器,即保留高频信号。这是最关键的一步,在此之前有时需要对输入图像进行消除噪声的处理。用于图像识别的边缘提取往往需要输出的边缘是二值图像,即只有黑白两个灰度的图像,其中一个灰度代表边缘,另一个代表背景。此外,还需要把边缘细化成只有一个像素的宽度。总的说来边缘提取的步骤如下:(1)去噪声(2)微分运算(3)二值化处理(4)细化。第二步是关键,有不少书把第二步就直接称为边缘提取。实现它的算法也有很多,一般的图像处理教科书上都会介绍好几种,如拉普拉兹算子,索贝尔算子,罗伯特算子等等。这些都是模板运算,首先定义一个模板,模板的大小以3*3的较常见,也有2*2,5*5或更大尺寸的。运算时,把模板中心对应到图像的每一个像素位置,然后按照模板对应的公式对中心像素和它周围的像素进行数学运算,算出的结果作为输出图像对应像素点的值。需要说明的是,模板运算是图像的一种处理手段,邻域处理,有许多图像增强效果都可以采用模板运算实现,如平滑效果,中值滤波(一种消除噪声的方法),油画效果,图像的凹凸效果等等。这些算法都比较简单,为人们常用。关于前面提到的几种边缘提取算子(拉普拉兹算子,索贝尔算子,罗伯特算子),经典图像边缘检测(微分法思想)-Prewitt算子。本系统就是利用Prewitt算子对车牌图像进行边缘进行检测的,其关键代码如下:for (row=iTempMY;rowlHight-iTempH+iTempMY+1;row+)for (col=iTempMX;collWidth-iTempW+iTempMX+1;col+)lpdst=G(lHight-1-row)*lWidth+col;fResult=0;for (int i=0;iiTempH;i+)for (int j=0;jImgDatalWidth*(lHight-1-row+iTempMY-i)+col-iTempMX;fResult+=lpsrc*aTemplatei*iTempW+j;fResult*=fTempC;if (fResult255)G(lHight-1-row)*lWidth+col=255;elseG(lHight-1-row)*lWidth+col=(BYTE)(fResult+0.5);for (row=0;rowlHight;row+)for (col=0;collWidth;col+)G1row*lWidt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论