基于MATLAB的车牌识别研究毕业设计论文_第1页
基于MATLAB的车牌识别研究毕业设计论文_第2页
基于MATLAB的车牌识别研究毕业设计论文_第3页
基于MATLAB的车牌识别研究毕业设计论文_第4页
基于MATLAB的车牌识别研究毕业设计论文_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、车牌识别技术研究 摘要:车牌识别是现代智能交通系统中的重要组成部分之一,应用十分的 广泛。它以数字图像处理、模式识别、计算机视觉等技术基础,对摄像机 所拍摄的车辆图像进行分析,得到每一辆汽车唯一的车牌号码,从而完成 识别过程,它对汽车防盗、缓解交通紧张等起到了积极的作用。本文主要 介绍了有关于车牌识别技术的原理,以及基于 MATLAB 的车牌识别的设 计,对一张车辆图片进行一系列的预处理(灰度化、边缘检测、腐蚀、填 充、形态滤波)之后,将车牌中的字符分割出来,最后将分割出的字符与 数据库中存储的字符进行模板匹配。通过以上的步骤的实现,该系统便能 完成牌照图像的定位分割和牌照字符的自动识别。 关

2、键词:MATLAB;图像预处理;车牌定位;字符分割;字符识别 License plate recognition technology research Abstract:License plate recognition is one of the modern intelligent transportation system is an important part of a wide range of applications. It is technology-based digital image processing, pattern recognition, computer

3、vision, vehicle camera captured images were analyzed, only every car license plate number, thus completing the identification process, its car security, relieve stress and other traffic from to a positive role. This paper introduces the principle of license plate recognition technology and design ba

4、sed on MATLAB license plate recognition, for a series of vehicle image preprocessing (gray, edge detection, corrosion, fill, morphological filtering) after the license plate characters split up, and finally split the data stored in the character and the character template matching. By implementing t

5、he above steps, the system will be able to complete the positioning of the vehicle license plate image segmentation and automatic license plate character recognition. Key words:MATLAB;image preprocessing; license plate location; character segmentation; character recognition 目 录 1 绪论 .1 1.1 研究目的和意义 .

6、1 1.2 国内外研究现状 .2 1.3 我国车牌分析 .3 1.4 本文章节安排 .3 2 数字图像处理概述 .5 2.1 图像及其组成要素 .5 2.2 数字图像及其表示 .5 2.3 数字图像处理基础 .6 2.4 MATLAB 在数字图像处理中的应用.6 3 车牌识别系统的原理及方法 .8 3.1 车牌识别系统简述 .8 3.2 车牌图像预处理 .9 3.2.1 图像灰度化 .9 3.2.2 边缘检测 .9 3.2.3 形态学图像处理 .10 3.3 车牌定位原理 .11 3.4 车牌字符分割 .13 3.4.1 字符分割 .13 3.4.2 字符归一化处理 .13 3.5 字符识别

7、.13 3.5.1 字符识别简述 .13 3.5.2 字符识别分类 .14 3.5.3 基于模板匹配的字符识别 .14 4 运用 MATLAB 实现车牌识别 .17 4.1 车牌图像灰度化 .17 4.1.1 程序分析 .17 4.1.2 结果分析 .18 4.2 车牌图像预处理 .19 4.2.1 程序分析 .19 4.2.2 结果分析 .20 4.3 牌照定位 .22 4.3.1 程序分析 .22 4.3.2 结果分析 .23 4.4 字符分割 .24 4.4.1 程序分析 .24 4.4.2 结果分析 .25 4.5 字符识别 .25 4.5.1 程序分析 .26 4.5.2 结果分析

8、.27 5 总结 .29 附录 .30 参考文献 .34 致谢 .35 1 绪论 1.1 研究目的和意义 随着计算机、通信技术、计算机网络技术在人们日常生活中的不断发展和应用, 带来了经济的快速发展,社会已经进入了信息化时代,自动处理信息的能力不断提高 并在人们生活的各个领域中得到广泛的应用。人们更多地将图像信息的自动检测,自 动识别技术运用到生活的方方面面,带来更多的方便。 基于社会经济的飞速发展,汽车已经成为生活中不可缺少的一种交通工具,已经 和人们的生活融为一体了,汽车保有量的不断增加,也带来了一系列的问题,比如: 交通堵塞严重、交通事故频发、交通污染严重、交通环境恶化和收费制度混乱等。

9、简 单的进行人工现场指挥和管理已经不能满足现实的需求,所以智能交通系统地建立是 最好的解决方法,智能交通系统就是一项以信息通信技术为基础,使得道路、车辆、 使用者三者紧密协调、和谐统一起来而建立起的在大范围内,全方位发挥作用的实时、 准确、高效的运输管理系统1。 车牌识别技术是智能交通系统的核心,以下几个领域都应用到了车牌识别: (1)停车场管理系统。利用车牌识别技术对出入车辆的号牌进行识别和匹配,与 停车卡结合实现自动计时、计费的车辆收费管理系统。 (2)高速公路超速自动化管理系统。以车牌自动识别技术为基础,与其他高科技 手段结合,对高速公路交通流状况进行自动监测、自动布控,从而降低交通事故

10、的复 发生率,确保交通顺畅。 (3)公路布控。采用车牌识别技术实现对重点车辆的自动识别,快速报警,既可 以有效查找被盗车辆,同时又为公安、检察机关提供了对犯罪嫌疑人的交通工具进行 远程跟踪与监查的技术手段。 (4)城市十字交通路口的“电子警察” 。可以对违章车辆进行责任追究,也可以 辅助进行交通流量统计,交通监测和疏导。 (5)小区车辆管理系统。社区保安系统将出入社区的车辆通过车牌识别技术进行 记录,将结果与内部车辆列表对比可以实现防盗监管2。因此车牌识别问题已经成为现 代交通工程领域中的重点和热点问题之一。 本次研究主要是理解基于 MATLAB 的车牌识别的实现方法。本次研究的重点在汽 车牌

11、照定位、车牌字符分割以及车牌字符识别技术的实现。 1.2 国内外研究现状 车牌识别技术研究在国外起步比较早,早在20世纪80年代,便有一些零零散散的 图像处理方法用于车牌识别的某些具体应用。在这个阶段,车牌识别技术的研究还没 有形成完整的系统体系,一般采用简单的图像处理方法来解决某些具体问题,并且最 终结果需要人工干预。 进入20世纪90年代后,国外的研究人员就已经开始了对汽车牌照识别的研究。典 型的如A.S.Johnson等提出车辆牌照的识别系统分为图像分割、特征提取和模板构造、 字符识别等三部分,完成车辆牌照的识别。R.A.Lotufo把获得了的图像使用视觉字符识 别技术进行分析,第一步是

12、要在二值化图像中把车牌找到,第二步是用边界跟踪技术 把字符特征出来,第三步是比较字符库中的字符和统计最邻近分类器,最后会得出一 些候选的车牌号码,再核实和检查这些候选的车牌号码,确定某个候选的车牌号码是 否和该车的车牌号码一致,最终就可以确定出该车的车牌号码了。这个时期的车牌识 别在识别车牌的正确率上已经远远高于从前了,但是识别实时性的要求还没有考虑到, 识别速度有待进一步提高。从80年代中期开始,ARGUS英国Alphatech公司就开始了名 为RAUS的车牌识别系统的研制。ARGUS的车牌识别系统的识别时间为100毫秒,通过 ARGUS的车速可高达每小时100英里。还有Hi-Tech公司的

13、See/Car system,新加坡 Optasia公司的VLPRS等。另外日本、加拿大、德国等发达国家都有适用于本国的车牌 识别系统。各国的车牌识别产品虽然不同,但基本上都是基于车辆探测器的系统,设 备投资都是相当的巨大。 但是以上的系统都不适用于我国的车牌识别,主要原因包括:我国的车牌缺乏统 一的标准、我国车牌悬挂位置不统一、我国汽车牌照中的汉字识别比英语字符和数字 字符的识别困难等。我国在20世纪90年代后期以后,随着汽车数量的急剧增加,车牌 识别技术应用的范围越来越广,车牌识别技术已成为一个热门的研究课题,人们对其 进行了广泛的研究。目前,比较成熟的产品有中科院自动化研究所汉王公司的“

14、汉王 眼” ,香港亚洲视觉科技有限公司的慧光车牌号码识别系统等。另外西安交通大学的图 像处理和识别实验室、上海交通大学的计算机科学和工程系、清华大学人工智能国家 重点实验室、浙江大学自动化系等都做过类似的研究3。 虽然这些车牌识别系统的识别率大多都比较高,但是这些车牌识别系统的识别检 测结果大多数是在简单受限制的场景下取得的,而在实际的交通场合以及更加复杂的 背景环境下,这些车牌识别系统的识别率往往很低。所以车牌识别技术将来的发展趋 势是能在实际的交通场合以及更加复杂的背景环境的情况下,提高车牌识别系统的识 别率。 1.3 我国车牌分析 我国汽车牌照是由车辆管理机关经过申领牌照的汽车进行审核、

15、检验、登记后, 核发的带有注册登记编码的硬质号码牌,它们都具有统一的格式、统一的式样。我国 车牌号的第一个是汉字:代表该车户口所在省的简称:如川就是成都,粤就是广州, 京就是北京,渝就是重庆等,第二个是英文字母:它代表该车所在地的地市一级代码, 规律一般是这样的,A 是省会,B 是该省第二大城市,C 是该省第三大城市,依此类 推,车牌号的后五位是汽车的编号,一般为 5 位数字,即从 0000199999,编号超过 10 万时,就由 A、B、C 等英文字母代替,即 A 代表 10 万,B 代表 11 万,C 代表 12 万, 最后一个字母及 Z 代表 33 万,英文字母中的 O 和 I 避而不用

16、,以免和数字中的 0 和 1 混淆。 目前我国所使用的车辆牌照主要分为六大类, 第一类是底色为蓝色字为白色的牌照是小型民用汽车所用的牌照; 第二类是底色为黄色字为黑色的牌照是大型民用汽车所用的牌照; 第三类是底色为白色字为红色的牌照是试车和车临时所用的牌照,而且数字之前 分别标有“临时”和“试”字标志; 第四类是底色为白色字为黑色的牌照是汽车补用牌照; 第五类是底色为黑色字为白色的牌照是使馆、领事馆所使用的外籍汽车牌照; 第六类是底色为白色字为红字、黑字的牌照是武警或军队专用汽车的牌照4。 本次设计我使用的车辆牌照是蓝底白字的小型民用汽车牌照,它是 1992 式号牌, 共计 7 个字符,车牌的

17、外轮廓尺寸都是 440mm140mm,字符高 90mm,宽 45mm,字 符间距 12mm,间隔符宽 10mm,整个字符的高宽比例近似为 3:1,车牌的边缘是线段 围成的矩形。 1.4 本文章节安排 本文以 MATLAB 程序为基础,介绍车牌识别技术的原理、方法、结果等内容。 本文第 1 章主要介绍车牌识别技术的研究目的和意义、车牌识别技术的发展以及 对我国车牌的分析。 第 2 章主要介绍数字图像的组成要素、数字图像的基础以及 MATLAB 软件在数字 图像中的应用。 第 3 章主要简述了车牌识别技术的原理以及基于 MATLAB 的车牌识别的实现过程。 第 4 章主要介绍了基于 MATLAB

18、的车牌识别代码以及对仿真结果的分析。 第 5 章主要是对本次设计和论文的总结。 2 数字图像处理概述 2.1 图像及其组成要素 图像是对客观对象的一种相似性的、生动的描述或表示。在其自然的形式下,图 像并不能直接由计算机进行分析。 图像按明暗程度和空间坐标的连续性可以分为两大类,分别是数字图像和模拟图 像。明暗程度和空间坐标都是连续变化的、计算机无法直接处理的图像是模拟图像。 数字图像是一种空间坐标和灰度均不连续的、用离散的数字表示的图像,它的基本组 成单元包括像素和灰度,计算机能直接处理的图像是数字图像。因此,数字图像可以 理解为图像的数字表示,是空间和时间的非连续函数(信号) ,是为了便于

19、计算机处理 的一种图像表示形式。它是由一系列离散单元经过量化后形成的灰度值的集合,即像 素的集合5。 图像按波段多少来分,又可以分为单波段、多波段和超波段图像。我们平时常见 的彩色图像是在每个点具有红(R)、绿(G)、蓝(B) 3 个亮度值,这 3 个值表示在不同光 波段上的强度,比如:纯红色 R 值为 255,G 值为 0,B 值为 0;灰色的 R、G、B 3 个 值相等(除了 0 和 255) ;白色的 R、G、B 都为 255;同理黑色的 R、G、B 都为 0, 所以人眼看来就是不同的颜色。 一般情况下只考虑平面、单色、静止图像,此时图像可表示为一个二维函数: (2-1)( , )If

20、x y 2.2 数字图像及其表示 传统意义上的图像是连续的,即式(2-1)中的是连续的,表示的物体辐xyf、 射能量在空间上的连续分布,连续图像也称为模拟图像。 为了便于利用计算机对图像进行进一步的加工和处理,需要把模拟图像在空间上、 幅值上进行离散化,将其转换为对应的数字形式,离散化的图像称为数字图像。图像 离散化过程包括两种处理:取样和量化。一幅模拟图像的坐标及幅度都是连续的,为 了把它转换为数字形式,必须对坐标和幅度都作离散化操作。数字化坐标值称为取样, 它确定了图像的空间分辨率;数字化幅度值称为量化,它确定了图像的幅度分辨率。 对于灰度图像,量化是对取样所得的离散样本点上的灰度值进行离

21、散化,将原图 像的连续灰度用(k 为整数)个等间距的灰度级进行表示。连续图像被取样和量2kL 化后可以用一个矩阵来表示,即MN (2-2) (0,0)(0,1)(0,1) (1,0)(1,1)(1,1) ( , ) (1,0)(1,1)(1,1) fffN fffN f x y f Mf Mf MN 此时等式右边的被称为数字图像,矩阵中的每一个元素称为像素。( , )f x y 2.3 数字图像处理基础 数字图像处理就是利用计算机对各种图像信息进行处理,以期得到某种预期的效 果或从图像中提取有用的信息。数字图像处理系统基本由三个部分组成:计算机、图 像数字化仪和图像显示设备。数字图像处理的基本

22、过程是由图像数字化器中产生的数 字图像先进入一个适当装置的缓存中,然后根据操作员的指令,计算机调用和执行程 序库中的图像处理程序。在执行过程中,输入图像被逐行的读入计算机。对图像进行 处理后,计算机逐行按像素生成一幅输出图像,并将其逐行送入缓存6。 图像数字化仪图像显示设备图像处理计算机 图 2-1 数字图像处理 2.4 MATLAB 在数字图像处理中的应用 MATLAB 软件是 matrix %读入图像 figure(1); imshow(I), title(原始图像); I_gray=rgb2gray(I); %对图像 I 进行灰度处理 figure(2); imshow(I_gray),

23、title(灰度图像); 4.1.2 结果分析 (a)车辆牌照原始图像 (b)车牌灰度图像 图4-1 车牌图像灰度化 由图4-1(b)可知,原始的彩色图像已经转换成了灰度图像,灰度图像的每一个像 素的取值就是256中灰度中的一种(0表示黑,255表示白,从0到255亮度逐渐增加), 也就是说灰度图像只有亮度信息而没有色彩信息。通过了图像灰度化处理,才有利于 车牌定位的实现。 4.2 车牌图像预处理 车牌图像的预处理包括了边缘检测、对边缘图像进行腐蚀、再对其进行闭运算、 最后滤波移除小对象。在本次设计中,我利用 Sobel 算子对灰度图像进行边缘检测,然 后再对边缘图像进行腐蚀,去除掉边缘图像细

24、的、间断的边缘,对剩下的区域进行闭 合以填充图像,此时车牌区域已经形成了一个大的连通域,再调用 bwareaopen 函数去 掉小的连通域。 4.2.1 程序分析 I_edge=edge(I_gray,sobel); %利用 Sobel 算子进行边缘检测 figure(3); imshow(I_edge),title(边缘检测后图像); se=1;1;1; I_erode=imerode(I_edge,se); %对边缘图像进行腐蚀 figure(4); imshow(I_erode),title(腐蚀后边缘图像); se=strel(rectangle,25,25); I_close=imc

25、lose(I_erode,se); %填充图像 figure(5); imshow(I_close),title(填充后图像); I_final=bwareaopen(I_close,2000); %去除聚团灰度值小于 2000 的部分 figure(6); imshow(I_final),title(形态滤波后图像); 边缘检测是为了对有意义的边缘点进行分类,与这个点相联系的灰度级必须比在 这一点的背景上变换更有效,我们通过门限方法来决定一个值是否有效。所以,如果 一个点的二维一阶导数比指定的门限大,我们就定义图像中的次点是一个边缘点,一 组这样的依据事先定好的连接准则相连的边缘点就定义为一

26、条边缘。经过一阶的导数 的边缘检测,所求的一阶导数高于某个阈值,则确定该点为边缘点,这样会导致检测 的边缘点太多。可以通过求梯度局部最大值对应的点,并认定为边缘点,去除非局部 最大值,可以检测出精确的边缘。一阶导数的局部最大值对应二阶导数的零交叉点, 这样通过找图像强度的二阶导数的零交叉点就能找到精确边缘点。 边缘检测选用不同的额算子或者阈值都会对结果造成很大的影响,经过反复试验, 我选取了 Sobel 算子进行边缘检测,通过代码 I_edge=edge(I_gray,sobel)就能得到边缘 检测的图像如图 4-2(a)所示。 4.2.2 结果分析 (a) 车牌边缘检测图像 (b) 腐蚀后边

27、缘图像 (c) 填充后图像 (d) 形态滤波后的图像 图 4-2 车牌图像预处理 本文通过对图像进行腐蚀、膨胀如图 4-2(b),腐蚀是一种消除边界点的过程, 结果是使目标缩小,孔洞增大,因而可有效的消除孤立噪声点。经过腐蚀过后,图像 中目标周围的边缘被腐蚀了,大大的缩小目标的范围,为后面提取车牌的进行提供了 先决条件。对其实现闭运算如图 4-2(c),先膨胀后腐蚀的过程称为闭运算,具有填 充物体内细小空洞,连接邻近物体和平滑边界的作用。最后还用了 bwareaopen 来去除 对象中不相干的小对象。由此得到车牌图像的初步定位,如图 4-2(d)所示。通过对 比原始图片,我们可以发现形态滤波后

28、的图像已经很接近正确的车牌位置了,因此后 期处理将通过这张图来找出车牌位置。 4.3 牌照定位 观察经过预处理后得到的图像发现车牌位置有明显的矩形图样,通过对矩形区域 的定位即可获得具体的车牌位置。设计过程首先将二值图像中所有为白色的点的坐标 放入数组 location_of_1 中,对这些坐标进行计算,寻找 x 坐标与 y 坐标之和最大的点 a 与最小的点 b,最大点 a 即为车牌的左上角,最小点 b 为车牌的右下角,通过这两个 坐标将车牌分割出来。 4.3.1 程序分析 I_new=zeros(size(I_final,1),size(I_final,2); location_of_1=;

29、 for i=1:size(I_final,1) %寻找二值图像中白的点的位置 for j=1:size(I_final,2) if I_final(i,j)=1; newlocation=i,j; location_of_1=location_of_1;newlocation; end end end mini=inf;maxi=0; for i=1:size(location_of_1,1) %寻找所有白点中,x 坐标与 y 坐标的和最大,最小的两个点的位置 temp=location_of_1(i,1)+location_of_1(i,2); if tempmaxi maxi=temp;

30、 b=i; end end first_point=location_of_1(a,:); %和最小的点为车牌的左上角 last_point=location_of_1(b,:); %和最大的点为车牌的右下角 x1=first_point(1)+4; %坐标值修正 x2=last_point(1)-4; y1=first_point(2)+4; y2=last_point(2)-4; I_plate=I(x1:x2,y1:y2); g_max=double(max(max(I_plate); g_min=double(min(min(I_plate); T=round(g_max-(g_max

31、-g_min)/3); % T 为二值化的阈值 I_plate =im2bw (I_plate,T/256); subplot(3,2,5),imshow(I_plate); I_plate=bwareaopen(I_plate,20); figure,imshow(I_plate),title(车牌提取) %画出最终车牌 4.3.2 结果分析 图 4-3 车牌提取图片 定位后车牌图像是彩色的,会占用较大的存储空间,加重计算机负担,所以要对 图像进行二值化以及滤波处理。这样才有助于字符分割的进行。如图 4-3 所示 4.4 字符分割 此部分是将前面分割出的车牌的 7 个字符分割出来,其过程是从

32、左向右像按列计 算每一列之和,没有白点的列和为 0,有白点的列和非零,转换为逻辑 1,记录下所有 列和在 0 与 1 转换的列,即为需要切割的列,共有 14 列,可切出 7 个字符。切割出单 个字符后,放入 char_(i)中,并切割掉每个字符的上下的空白区域,完成精确切割。 4.4.1 程序分析 X=; %用来存放水平分割线的横坐标 flag=0; for j=1:size(I_plate,2) sum_y=sum(I_plate(:,j); if logical(sum_y)=flag %列和有变化时,记录下此列 X=X j; flag=logical(sum_y); end end fi

33、gure for n=1:7 char=I_plate(:,X(2*n-1):X(2*n)-1); %进行粗分割 for i=1:size(char,1) %这两个 for 循环对分割字符的上下进行裁 剪 if sum(char(i,:)=0 top=i; break end end for i=1:size(char,1) if sum(char(size(char,1)-i,:)=0 bottom=size(char,1)-i; break end end char=char(top:bottom,:); subplot(2,4,n);imshow(char); char=imresize

34、(char,32,16,nearest); %归一化为 32*16 的大小,以便模板匹配 eval(strcat(Char_,num2str(n),=char;); %将分割的字符放入 Char_i 中 end 4.4.2 结果分析 图 4-4 字符分割图像 在汽车牌照自动识别过程中,字符分割有承前启后的作用,它在前期牌照定位的 基础上进行字符的分割,然后再利用分割的结果进行字符识别。一般分割出来的字符 要进行进一步的处理,以满足下一步字符识别的需要,但是对于车牌的识别,并不需 要太多的处理就已经可以达到正确识别的目的,在此只进行了归一化处理,然后进行 后期处理。由于我们制作的模板是 32*1

35、6 像素点的规格,为了方便后面的模板匹配, 我们就将分割的图片进行 32*16 像素点的归一化处理,最后结果如图 4-4 所示。 4.5 字符识别 模板库的合理建造是字符识别准确的关键之一,所以在字符识别之前必须把模板 库设置好。汽车牌照的字符一般有 7 个,大部分车牌第一位是汉字,通常代表车辆所 属省份,或是军种、警别等有特定含义的字符简称;紧接其后的为字母与数字。车牌 字符识别与一般文字识别在于它的字符数有限, 十个阿拉伯数字 09, 24 个大写英 文字母 AZ 以及相关的车牌用汉字:京、沪、苏、台、港、澳、甲、乙、丙、使、 领、学、试、境、消、边、警等,以及新式军牌中的汉字南、兰、广、

36、北、沈、济、 空、海等。所以建立字符模板库也极为方便。建立模板数据库时要作为模板的图片进 行统一处理,所以将这些图片归一化为大小 32*16 像素点的规格。制作出的汉字模板 存储在命名为 chinese 的文件夹中,字母与数字的模板存储在命名为 cha store1=strcat(贵,琼,粤,湘,鄂,皖,鲁,藏,京,苏,黑,吉,冀,晋,辽); %创建汉字识别模板库 for j=1:15 Im=Char_1; Template=imread(strcat(chinese,num2str(j),.jpg); Template=im2bw(Template); Differ=Im-Template;

37、 Compare(j)=sum(sum(abs(Differ); end index=find(Compare=(min(Compare); char=char store1(index); store2=strcat(A,B,C,D,E,F,G,H,J,K,L,M,M,N,P,Q,R. ,S,T,U,V,W,X,Y,Z,0,2,3,4,5,6,7,8,9); %创建字母与数字识别模板库 for i=2:7 for j=1:34 Im=eval(strcat(Char_,num2str(i); Template=imread(strcat(cha Template=im2bw(Template

38、); Differ=Im-Template; Compare(j)=sum(sum(abs(Differ); end index=find(Compare=(min(Compare); char=char store2(index); end figure,imshow(I),title(strcat(车牌为:,char); 4.5.2 结果分析 图 4-5 字符识别结果图像 本文以 MATLAB R2009a 为实验平台,在得到这个结果之前,需要对车牌图像进 行预处理、车牌定位、车牌分割等处理。 在图像采集的过程中,由于外界的干扰如光线等因素原因以及车主在车牌周围的 装饰,还有生产厂家对车身

39、的点缀容易给车牌的定位造成很大程度的影响,因此需要 对原始图象进行识别前的预处理。对于光照条件不理想的图象,可先进行一次图象增 强处理,使得图象灰度动态范围扩展和对比度增强,再进行定位和分割,这样可以提 高分割的正确率。由于车牌采集的信息都是些彩色图片,含有大量的数据信息,因此 我们还要对其进行灰度化处理。图像中车辆牌照是具有比较显著特征的一块图象区域, 这此特征表现在:近似水平的矩形区域;其中字符串都是按水平方向排列的;在整体 图象中的位置较为固定。正是由于牌照图象的这些特点,再经过适当的图象变换,它 在整幅中可以明显地呈现出其边缘,于是对其边缘提取,此处边缘的提取采用的是 Sobel 算子

40、。随之进行定位及分割还有识别。 对于识别错误情况的分析得到,主要原因有以下几点: (1) 汽车牌照上外界干扰,如在牌照周围添加饰物; (2) 采用不同的边缘检测算子将会使牌照字符的分割失败,导致识别错误; (3) 某些字符具有相似性,字符识别结果可能发生混淆的情况。 尽管目前牌照字符的识别率还不是很完美,但是只要在分割出的字符的大小、位置的 归一化,以及尝试提取分类识别能力更好的特征值和设计分类器等环节上再完善,进 一步提高识别率是完全可行的。 5 总结 近年来我国随着社会经济的高速发展、汽车数量急剧增加,对交通管理的要求也 日益提高,而相应的人工管理方式以不能满足实际的需要,微电子、通信和计

41、算机技 术在交通领域的应用极大地提高了交通管理的效率。而车牌识别技术恰好能满足这一 需求,通过车牌识别我们可以解决被纳入“黑名单”的通缉车辆,可以统计一定时间 范围内进出各省的车辆,还能有效的对该车辆进行定位,对公安机关等相关部门有着 很重要的作用通过智能的车牌定位及识别技术将对于维护交通安全和城市治安,防止 交通堵塞,实现交通自动化管理有着现实的意义。 通过本次车牌识别的设计,我也对数字图像处理技术的原理及 MATLAB 编程技术 有了更进一步的了解。让我不仅仅是在学习知识上,还有对科学实验的严谨态度上都 有了很大提升。本次设计的研究以 MATLAB 软件作为设计工具,通过对采集到的原始 图

42、像进行预处理、车牌定位、字符分割以及字符识别才识别出图像中的车牌。本次设 计主要解决了一下几个问题: (1)对彩色图像进行灰度化处理的方法: (2)选取合适的边缘检测算子及对灰度图像进行边缘检测的方法; (3)如何在图像中定位出车牌位置并从定位好的车牌图像中提取出车牌; (4)如何对车牌字符进行分割和字符识别。 在车辆牌照字符识别系统的研究领域,近几年已经出现了许多切实可行的识别技 术和方法,从这些新技术和方法中可以看到两个明显的趋势:一是单一的人工选取合 适的算法和其他指标已经不能取得很好的结果。二是车牌识别逐渐走上智能化的过程, 通过智能系统选取不同的算法进行自动的分析才能更准确的应对各个

43、角度及位置的车 牌信息识别。虽然本次设计出的车牌识别技术还存在很多不足之处,但是我在此次的 毕业设计中学习到了很多知识,增加了我的学习能力,这对我来说是很大的锻炼。 附录 设计代码 I=imread(cell.jpg); subplot(3,2,1);imshow(I), title(原始图像); I_gray=rgb2gray(I); subplot(3,2,2),imshow(I_gray),title(灰度图像); I_edge=edge(I_gray,sobel); subplot(3,2,3),imshow(I_edge),title(边缘检测后图像); se=1;1;1; I_er

44、ode=imerode(I_edge,se); subplot(3,2,4),imshow(I_erode),title(腐蚀后边缘图像); se=strel(rectangle,25,25); I_close=imclose(I_erode,se); %图像闭合、填充图像 subplot(3,2,5),imshow(I_close),title(填充后图像); I_final=bwareaopen(I_close,2000); %去除聚团灰度值小于 2000 的部分 subplot(3,2,6),imshow(I_final),title(形态滤波后图像); I_new=zeros(size

45、(I_final,1),size(I_final,2); location_of_1=; for i=1:size(I_final,1) %寻找二值图像中白的点的位置 for j=1:size(I_final,2) if I_final(i,j)=1; newlocation=i,j; location_of_1=location_of_1;newlocation; end end end mini=inf;maxi=0; for i=1:size(location_of_1,1) %寻找所有白点中,x 坐标与 y 坐标的和最大,最小的两个点的位置 temp=location_of_1(i,1

46、)+location_of_1(i,2); if tempmaxi maxi=temp; b=i; end end first_point=location_of_1(a,:); %和最小的点为车牌的左上角 last_point=location_of_1(b,:); %和最大的点为车牌的右下角 x1=first_point(1)+4; %坐标值修正 x2=last_point(1)-4; y1=first_point(2)+4; y2=last_point(2)-4; I_plate=I(x1:x2,y1:y2); g_max=double(max(max(I_plate); g_min=d

47、ouble(min(min(I_plate); T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值 I_plate =im2bw (I_plate,T/256); subplot(3,2,5),imshow(I_plate); I_plate=bwareaopen(I_plate,20); figure,imshow(I_plate),title(车牌提取) %最终车牌 X=; %用来存放水平分割线的横坐标 flag=0; for j=1:size(I_plate,2) sum_y=sum(I_plate(:,j); if logical(sum_y)=fl

48、ag %列和有变化时,记录下此列 X=X j; flag=logical(sum_y); end end figure for n=1:7 char=I_plate(:,X(2*n-1):X(2*n)-1); %进行粗分割 for i=1:size(char,1) %这两个 for 循环对分割字符的进行裁剪 if sum(char(i,:)=0 top=i; break end end for i=1:size(char,1) if sum(char(size(char,1)-i,:)=0 bottom=size(char,1)-i; break end end char=char(top:b

49、ottom,:); subplot(2,4,n);imshow(char); char=imresize(char,32,16,nearest); %归一化为 32*16 的大小,以便模板匹配 eval(strcat(Char_,num2str(n),=char;); %将分割的字符放入 Char_i 中 end char=; store1=strcat(贵,琼,粤,湘,鄂,皖,鲁,藏,京,苏,黑,吉,冀,晋,辽); for j=1:15 Im=Char_1; Template=imread(strcat(chinese,num2str(j),.jpg); Template=im2bw(Template); Differ=Im-Template; Compare(j)=sum(sum(abs(Differ); end index=find(Compare=(min(Compare); char=char store1(index); store2=strcat(A,B,C,D,E,F,G,H,J,K,L,M,M,N,P,Q,R. ,S,T,U,V,W,X,Y,Z,0,2,3,4,5,6,7,8,9); for i=2:7 for j=1:34 Im=eval(strcat(Char_,num

温馨提示

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

评论

0/150

提交评论