您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页基于图像处理的车牌信息处理与识别算

基于图像处理的车牌信息处理与识别算

来源:爱go旅游网


JIANGSU UNIVERSITY

本 科 生 毕 业 论 文

基于图像处理的车牌信息处理与识别算

法的研究与设计

The Study and Design of the License Plate Recognition and Information Processing Basing On the Image Processing

学院名称: 计算机科学与通信工程学院 专业班级: 通信工程0601班 学生姓名: 毛文娟 指导教师姓名: 宋雪桦 指导教师职称: 副教授

2010年6 月

江苏大学本科毕业论文

基于图像处理的车牌信息处理与识别算法的研究与设计

专业班级:通信工程0601班 学生姓名:毛文娟

指导教师:宋雪桦 职称:副教授

摘要: 随着经济的发展,各种交通运输工具尤其是汽车数量的剧增为人们的生活带来了

极大的便利,为缓解公路等交通基础设施发展的相对落后而为交通管理等带来的巨大压力,智能交通系统(ITS)应运而生。车牌识别系统(LPR)作为智能交通系统关键技术之一,具有对车辆进行自动化监视,验证,登记与报警等功能,可应用于高速公路管理系统,停车场收费管理,小区车辆管理与电子警察等领域当中。

本文通过对大量相关资料的搜集、整理、分析,选择了一些图像预处理的方法对图像进行预处理,详细分析了车辆图像的特征,尤其是牌照区域的特征,通过形态学的方法去除无关区域再根据定位图像中像素点的统计特性来精确定位车牌。然后扫描车牌区域每列蓝色像素点,结合车牌字符本身的几何特征进行字符分割,使最终的字符块能满足后续字符识别的要求。

综合实验结果表明,本文提出的车牌定位方法定位准确率高,对于质量较差的图像也有较好的定位效果。字符识别部分采用了最基本的模板匹配法,容易理解且识别率基本满足实际的需要。

关键词:车牌识别;车牌定位;字符分割;字符识别

I

江苏大学本科毕业论文

The Study and Design of the License Plate Recognitionand Information Processing Basing On the Image Processing

Abstract: With the rapid development of science and technology, the increasing number of all

kinds of transportation tools especially vehicles have brought obvious convenience to human, but at the same time, the development of basal structure of transportation was slowly. It increases the traffic control and management pressure, the Intelligent Transportation System (ITS) is devised to alleviate the pressure. The License Plate Recognition is the kernel function of this system, The License Plate Recognition can automatically provide vehicles inspecting, validation, registering and alarming, so it can be used in high way management systems, parking charging systems, uptown vehicle management systems and electronic police systems.

In this paper, I have collected large numbers of interrelated data, and then I analyze some image disposal measures, and then choose some measures to deal with the images, so we can get good images to locate the license plate. I analyze the characteristic of license images, especially in license plate area. Through the morphology of the region has nothing to do to remove the image in accordance with positioning of the statistical properties of pixels for accurate positioning plate. Then I enhance and proportion the grayness value of the license plate, and then rectify the color of the license plate. Finally, I locate and segment the vehicle license plate exactly.

Combination of test results show that the proposed license plate location method in this paper also have better positioning performance for poor quality images. Character recognition part is the most basic template matching method, which is easy to understand and basically meet the actual needs.

Key Words: Plate Identification; Plate Location; Character Segmentation; Character

Recognition

II

江苏大学本科毕业论文

目 录

第一章 绪 论 ................................................................ 1 1.1课题背景及研究意义 .................................................... 1 1.2国内外车牌识别技术研究现状及发展趋势 .................................. 1 1.3 论文研究主要内容 ...................................................... 2 第二章 车牌识别的原理 ....................................................... 3 2.1车牌图像的预处理 ...................................................... 3 2.1.1彩色图像的灰度化 .................................................. 3 2.1.2图像增强 .......................................................... 3 2.1.3边缘检测 .......................................................... 4 2.2车牌图像的定位 ........................................................ 5 2.2.1灰度图像的形态学膨胀算法 .......................................... 6 2.2.2灰度图像的形态学腐蚀算法 .......................................... 6 2.2.3灰度图像的形态学闭算法 ............................................ 6 2.2.4区域分割 .......................................................... 7 2.3倾斜校正 .............................................................. 8 2.4字符分割与归一化 ...................................................... 9 2.4.1字符的分割 ........................................................ 9 2.4.2字符归一化处理 ................................................... 10 2.5字符识别 ............................................................. 10 第三章 车牌识别的软件实现 .................................................. 12 3.1车牌图像的预处理 ..................................................... 12

3.1.1灰度化的仿真结果 ................................................. 12 3.1.2图像增强的仿真结果 ............................................... 13 3.1.3边缘检测的仿真结果 ............................................... 14 3.2 车牌图像的定位 ....................................................... 14 3.2.1车牌的形态学处理 ................................................. 14 3.2.2区域分割 ......................................................... 15 3.3 字符分割与归一化 ..................................................... 15 3.3.1字符的分割 ....................................................... 15 3.3.2字符归一化 ....................................................... 16 3.4 字符识别 ............................................................. 16 第四章 总结 ................................................................ 18 参考文献 ................................................................... 19 致 谢 ..................................................................... 20 附 录 ..................................................................... 21

III

江苏大学本科毕业论文

第一章 绪 论

1.1课题背景及研究意义

产业革命开始以来,交通运输业的飞速发展为人们的生活带来了极大的便利,与此同时,各种交通运输工具特别是汽车数目的剧增也给社会和环境带来了日趋严重的巨大压力,为了缓解这些压力,智能交通系统ITS(Intelligent Transportation System)应运而生[1]。它是在较完善的道路设施基础上,将先进的电子技术、信息技术、传感器技术和系统工程技术集成运用于地面交通的实际需求,建立起全方位、实时准确、高效的地面交通系统,实质上就是利用高新技术对传统的交通系统改造成一种信息化、智能化、社会化的新型交通系统[2]。

随着我国经济的快速发展,智能交通系统将会成为现代交通管理发展的必然趋势,车辆牌照识别(License Plate Recognition,简称LPR)是智能交通系统实现的前提,是车辆自动识别系统中最有发展的技术之一,在高速公路、城市道路和停车场等项目管理中占有无可取代的重要地位。

LPR系统主要应用于[3]:

(1)高速公路收费管理系统在高速公路收费出入口分别完成车牌号码识别和车牌匹配工作,可以发现车辆换卡的行为,收费员的舞弊行为,规范收费程序。

(2)公路布控采用车牌识别技术,实现对重点车辆的自动识别、快速报带处理。不仅可以有效防止机动车辆被盗,而且为公安、监察机关对犯罪嫌疑人所驾车辆的自动监控和跟踪提供了高科技手段。

(3)停车场收费管理系统。

(4)封闭式居民小区物业管理及重要部门的保安管理,等等。

LPR技术用于上述范围,可以解决车辆的自动稽查问题,可以解决车流高峰期因出入口车流瓶颈造成的路桥卡口、停车场交通堵塞问题,可以协助路桥卡口、高速公路、停车场人工收费及停车收费等,还可以用最简单的方式完成交通部门的车辆信息联网,实现数据统计自动化,模糊查询等。由此可见,LPR系统具有非常广大的应用前景。车辆牌照图像识别涉及到模式识别、图像处理、人工智能、信息论、计算机等多个学科,同时也与语言文字学等学科相关,是一门综合的技术,有着重要理论意义和实际应用价值。

1.2国内外车牌识别技术研究现状及发展趋势

目前,国内外有大量关于车牌识别方面的研究报道。国外在这方面的研究工作开展较早。在上世纪70年代,英国就在实验室中完成了“实时车牌检测系统”的广域检测和开发。同时代,诞生了面向被盗车辆的第一个实时自动车牌监测系统。发展至今,国外对车牌检测的研究已经取得了一些令人瞩目的成就,如YuntaoCui[4]提出了一种车牌识别系统,在车牌定位以后,利用马尔科夫场对车牌特征进提取和二值化,对样本的识别达到了较高的识别率。Eun Ryung[5]等利用图像中的颜色分量,对车辆牌照进行定位识别,

1

江苏大学本科毕业论文

其中提到了三种方法: (1)以Hough变换为基础的边缘检测定位识别;(2)以灰度值变换为基础的识别算法;(3)以HLS彩色模式为基础的车牌识别系统,识别率分别为81.25 % , 85 % , 91.25 %。日本对车牌图像的获取也做了大量的研究,并为系统产业化做了大量工作。Luis[6]开发的系统应用于公路收费站,全天识别率达到了90%以上,即使在天气不好的情况下也达到了70%。国外对车牌识别的研究起步早,总体来讲其技术已比较领先,同时由于他们车牌种类单一,规范程度较高,容易定位识别,目前,已经实现了产品化,并在实际的交通系统中得到了广泛的应用。

我国车牌自动识别的研究起步较晚,大约发生在八十年代末。1988年戴营[7]等利用常见的图像处理技术方法提出汉字识别的分类是在提取汉字特征的基础上进行的。根据汉字的投影直方图(Projection Histogram),选取浮动阈值,进行量化处理后,形成一个变长链码,再用动态规划法,求出与标准模式链码的最小距离,实现细分类,完成汉字的自动识别;上海交通大学计算机学院戚飞虎等人研究的基于彩色分割的牌照自动识别系统;华中科技大学黄心汉等人研究的基于模板匹配和神经网络的牌照识别系统;以及浙江大学图形图像研究所潘云鹤等人研究的“车牌通”产品等。此外,国内还有许多学者都在进行这方面的研究,并且取得了大量成果。

目前,车牌识别技术和产品性能进入实用阶段的时间还不是很长,随着人工智能以及自动识别技术的进步,未来的技术发展空间还会非常大。例如,核心算法继续发展,识别率和识别速度进一步改善,图像处理中对模糊图像预处理能力增强,画质改善技术的提高等等。

1.3 论文研究主要内容

汽车牌照识别是智能交通系统领域的一个重要研究课题,本课题运用 MATLAB 对车牌识别技术中的图像预处理、车牌定位、字符分割与字符识别等核心部分进行了研究,利用 MATLAB 语言编程 ,实现车牌图像识别系统中的图像处理和图像分割等关键技术的仿真。解决在自然背景的图象中定位分割牌照区域、车牌倾斜和提取分割下来的字符等问题。通过对一定数量的图像进行处理,表明 MATLAB 在这方面的运用是非常有效和成功的。

本课题来源于智能交通信号控制系统,车辆牌照的自动识别是智能交通信号控制系统中的关键技术。针对该课题,本文着重从以下几方面的内容展开研究:

(1)介绍智能交通系统目前的发展状况,本系统中应用到的技术理论基础知识,本系统的整体情况和本文解决的问题。国内外车牌识别技术研究现状及发展趋势。

(2)车牌识别的算法研究。主要是对车牌图像的预处理,车牌图像的定位,车牌图像的倾斜校正,字符分割与归一化,字符识别等方面的具体算法进行研究。

(3)车牌识别系统的软件实现,以MATLAB软件为主要工具,用MATLAB语言对图像各个处理过程进行仿真,并对仿真结果进行分析。

(4)根据实验结果分析系统仍然存在的缺陷与不足,并给出结论。

2

江苏大学本科毕业论文

第二章 车牌识别的原理

2.1车牌图像的预处理

利用摄像头拍摄到的车辆图像往往存在很多噪点,因此在进行识别前要进行车辆图像的预处理。车辆图像的预处理是指对采集到的车辆图像进行灰度化和去噪处理,以使车辆图像尤其是牌照区域的图像的质量得到改善,同时保留和增强车牌中纹理和颜色的信息,去除可能影响牌照区域纹理和颜色信息的噪点,为牌照定位提供方便。 2.1.1彩色图像的灰度化

汽车图像样本,目前大都是通过摄像机、数码相机等设备拍摄获取的,因而预处理前的图像都是彩色图像。真彩色图像又称RGB图像,它是利用R, G, B 3个分量表示一个像素的颜色,R, G, B分别代表红、绿、蓝3种不同的颜色,通过三基色,可以合成出任意颜色[8]。由于图像的每个像素都具有三个不同的颜色分量,存在许多与识别无关的信息,不但在存储上开销很大,而且在处理上也会降低系统的执行速度,不便于进一步的识别工作,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。

目前将彩色图像灰度化的处理方法主要有如下三种: (1)平均值法:使R, G, B的值等于三值和的平均值,即

RGB(RGB)/3 (2.1) (2)最大值法:使R,G,B的值等于三值中最大的一个,即

RGBmax(R,G,B) (2.2) (3)加权平均值法:将R, G, B赋予不同的权值并取平均值。由于人眼对绿色的敏感度最高,对红色的敏感度次之,对蓝色的敏感度最低,因此采用的图像灰度值的转换公式为:

W0.2289R0.5870G0.1140B (2.3) 其中,R,G,B分别代表红色(RED)、绿色(GREEN)、蓝色(BLUE)的颜色值,W代表转化后象素的灰度等级。根据车牌的实际使用情况,选择加权平均值法进行灰度化,这样更接近人类视觉系统。 2.1.2图像增强

由于牌照图像拍摄受到各种条件的限制和干扰,图像的灰度值往往与实际景物不完全匹配,这将直接影响图像的后续处理,如果造成这种影响的原因主要是由于被摄物体的远近不同,使得图像中央区域和边缘区域的灰度失衡,或是由于摄像头在扫描时各点的灵敏度差异较大而产生图像失真,或是由于曝光不足使得图像的灰度变化范围较窄,

3

江苏大学本科毕业论文

这时就可以采用灰度校正的方法来处理,增强灰度的变化范围,丰富灰度层次,达到增强图像对比度有利于车牌识别的目的。本文主要采用中值滤波法对车牌图像进行效果增强。

中值滤波是较常用的能够有效去除噪声并能减少边缘模糊的非线性平滑方法。具体方法是:对于一个滑动窗口N*M内的各像素按灰度级排序,用处于中间位置像素的灰度级来代替窗口中心像素原来的灰度级。中值的定义:N个数据进行排列后得到一个有序序列R0~Rn-1,其中(n-1)/2,称为中值。滑动窗口中亮度的中值不受个别噪声毛刺的影响,因此中值滤波相当好地消除了冲激噪声。并且因为中值滤波并不明显地模糊边缘,因此可以迭代使用。

中值滤波的特点:

(1)计算复杂度非常高(因为要在窗口内排序),执行速度慢。 (2)能量不守恒,即滤波前后图像的亮度发生改变。

(3)不容易造成图像模糊,具有非常好的抗噪性能。中值滤波能够在抑制随机噪声的同时不使边缘模糊。

在目标和背景的边界处的像素,当其邻域中大多数为目标点时,它取目标的灰度值,当其邻域中大多数为背景点时,它取背景的灰度值,一次不会造成图像模糊,中值滤波的效果依赖于两个要素:邻域的空间范围和中值计算中涉及的像素数,当空间范围较大时,一般只取若干稀疏分布的像素作抽样中值计算。 2.1.3边缘检测

图像的边缘是图像最基本的特征。所谓边缘(或边沿)是指其周围像素灰度有阶跃变化或“屋顶”变化的那些像素的集合。边缘广泛存在于物体与背景之间、物体与物体之间、基元与基元之间。因此,它是图像分割所依赖的重要特征。经典的边缘提取方法是考查图像的每个像素在某个领域内灰度的变化,利用边缘邻近一阶或一阶方向导数变化规律,用简单的方法检测边缘,这种方法称为边缘检测局部算子法。边缘检测[9]的基本思想是通过检测每个像元和其邻域的状态,以决定该像元是否位于一个物体的边界上。如果每一个像元位于一个物体的边界上,则其邻域像元灰度值的变化就比较大。例如可以应用某种算法检测出这种变化并进行量化表示,那么就可以确定物体的边界。 常用的边缘检测算子主要有:Robert算子,Sobel算子,Prewitt算子,Log算子和Canny算子。本文只对其中几种边缘检测算子进行简要介绍。

Robert边缘算子是一种斜向偏差分的梯度计算方法,梯度的大小代表边缘的强度,梯度的方向与边缘走向垂直。它由下式给出:

g(x,y)[f(x,y)f(x1,y1)][2f(x1,y)f(x,y1)] (2.4)

2其中f(x,y)、f(x1,y)、f(x,y1)和f(x1,y1)分别为4领域的坐标,且是具有整数像素坐标的输入图像;其中的平方根运算使得该处理类似于人类视觉系统中发生的过程。

4

江苏大学本科毕业论文

Sobel算子是一种一阶微分算子,它利用像素邻近区域的梯度值来计算1个像素的梯度,然后根据一定的阈值来取舍。它由下式给出:

S(dx2dy2)2 (2.5)

Sobel算子是一组方向算子,从不同的方向检测边缘。Sobel算子不是简单的求平均再差分,而是加强了中心像素上下左右四个方向像素的权重,运算结果是一副边缘图像,Sobel算子通常对灰度渐变和噪声较多的图像处理得较好。

Prewitt算子是一种边缘样板算子,利用像素点上下、左右邻点灰度差,在边缘处达到极值检测边缘,对噪声具有平滑作用。由于边缘点像素的灰度值与其领域点像素的灰度值有显著不同,在实际应用中通常采用微分算子和模板匹配方法检测图像的边缘。Prewitt算子不仅能检测边缘点而且能抑制噪声的影响因此对灰度和噪声较多的图像处理得较好。Prewitt算子由下式给出:

Sp=(dx2dy2)121 (2.6)

Log算子(Laplacian of Gaussian)[10]来源于Marr视觉理论中提出的边缘提取思想,即首先对原始图像进行最佳平滑处理,最大程度地抑制噪声,再对平滑后的图像求取边缘。

对于二维的图像信号,先用高斯函数进行平滑处理 G(x,y,)122exp[xy2222] (2.7)

其中,G(x,y,)是一个圆对称函数,其平滑的作用可以通过值来控制。由于对图像进行的线性平滑,可以用数学上卷积运算来实现,故有

g(x,y)f(x,y)G(x,y,)

(2.8)

式中,g(x,y)为平滑后的图像,f(x,y)是平滑前的原始图像。图像的边缘点在图像上是灰度变化剧烈的地方。图像灰度的突变将在一阶导数中产生一个峰值,或在一阶导数中产生一个零交叉点,而沿梯度方向的一阶导数是非线性的,计算较为复杂,可用拉普拉斯算子代替,即

g(x,y)[G(x,y,)f(x,y)]

22 (2.9)

其中2g(x,y)为Log算子。

2.2车牌图像的定位

在实时车牌识别系统中,牌照区域的确定是影响系统性能的重要因素之一,牌照的定位准确与否直接影响到字符分割和字符识别的准确率。车牌定位的主要工作是从摄入的汽车图像中找到汽车牌照所在的位置,并把车牌从该区域中准确地分割出来,供后续的字符分割使用,但是由于车牌图像摄于背景复杂且光照不均的自然场景,加上气候影

5

江苏大学本科毕业论文

响和牌照污染,会出现字符缺损和对比度低的图像,给车牌定位带来很大的困难。因此如何从复杂背景中快速准确的定位出车牌区域,是实时车牌识别系统中非常关键的一步。目前车牌定位的方法多种多样,归纳起来主要有边缘检测法、投影法、灰度特征法、变换法、神经网络法等,这些方法各有所长,但存在着计算量大或定位准确率不高等问题。近年来,形态学图像处理这门特殊的图像处理学科己发展成为图像处理的一个主要研究领域,本文将使用数学形态学的基本运算来实现车牌识别系统中的这一关键步骤——车牌定位[11]。

2.2.1灰度图像的形态学膨胀算法

膨胀是数学形态学最基本的运算。可以定义为

ABY{Ab:bB} (2.10) 因而,膨胀可以通过相对结构元素的所有点平移输入图像,然后计算其并集得到。膨胀也叫以通过对补集的腐蚀来定义。因为腐蚀表示对图像内部作滤波处理,而膨胀则表示对图像的外部作处理。如果结构元素为一个圆盘,那么膨胀可以填充图像中的孔,而腐蚀则可以消除图像中小的成分。值得注意的是,结构元素的大小和形状对腐蚀和膨胀的结果会产生不同的影响。 2.2.2灰度图像的形态学腐蚀算法

形态学的的第二个基本运算是腐蚀。腐蚀表示用某个结构元素对图像进行探测,以便找出在图像内部可以放下该结构元素的区域。集合A被集合B腐蚀,其定义表示为

AB{x:BxA} (2.11) 其中A称为输入图像,B称为结构元素。AB将B平移x但仍包含在A内的所有点

x组成。如果将B看作为模板,那么,AB则由在平移模板的过程中,所有可以填入A

内部的模板的原点组成。一般地,可以得到下列性质:如果原点在结构元素的内部,则腐蚀后的图像为输入图像的一个子集;如果原点在结构元素的外部,那么,腐蚀后的图像则可能不在输入图像的内部。 2.2.3灰度图像的形态学闭算法

闭运算是开运算的对偶运算,即先作膨胀然后再作腐蚀。利用B对A作闭运算定义为:

AB[AB]B

(2.12)

腐蚀和膨胀运算可以在保持物体形状不变的条件下缩小和放大物体。 开运算能够去除孤立的小点,毛刺和小桥(即连通两块区域的小点),而总的位置和形状不变。闭运算能够填平小湖(即小孔),弥合小裂缝,而总的位置和形状不变。

6

江苏大学本科毕业论文

经过前面的相关处理后,图像中存在了许多连通区域,而且大部分区域都是较小,明显不是车牌候选区,如果在后续的面积和长宽比综合分析中计算每一个区域是不明智的,因为大大增加了计算量和计算时间,不符合车牌定位的实时性。那么,此时要想办法排除较小的连通区域,即消除小物体。由此大大降低了候选区分析的计算量和计算时间,提高了车牌定位实时性和准确性。 2.2.4区域分割

对车牌的分割可以有很多种方法,本程序是利用车牌的颜色信息的彩色分割方法。根据车牌区域的底色相似,采用最大相似性,在RGB颜色空间内选取合适的颜色阈值,把图像中的像素分为一系列具有相似颜色的类,将像素分类为车牌区和非车牌区。虽然车牌颜色、车身颜色具有多样性,且有时一辆车的车身也不仅只有一种颜色,但是在车牌附近车身颜色的变化是以行为单位,车牌附近车身同一行的颜色从左到右基本不变。确定车牌在行方向的合理区域后,在分割出的行区域内,统计列方向蓝色像素点的数量,就可以得到完整的车牌区域[12]。对确定大致车牌范围的进行扫描,其中对蓝色区域的判定为:

(1)对蓝色的极限值R=0,G=0,B=255,有(BG)(BR)2552,为最蓝。 (2)如果某点B>R且B>G,则B比R,G大得越多越蓝。 (3)如果某点的B据此对行像素P进行统计分类。n1,n2,...nN (n为第i行的像素个数,i=l,2„N)。像素点(i, j)为蓝色点,统计Y方向蓝色像素点:

Blue_y(i,1)Blue_y(i,1)1 (2.13)

车牌与车身像素颜色(RGB)值不同,车身中和车牌底色像素颜色(RGB)值相同的数量极少,所以在像素扫描统计的过程中,因不满足车牌颜色范围而剔除。满足条件的像素密集在车牌区域。据像素统计确定阈值T,进一步排除车牌所在可能性,确定车牌行区域。

车牌行区域条件:

当ni T时,该行是车牌所在行。

根据车牌底色单一性和连通性,将满足车牌行区域条件的行合并,合并区域即为车牌行区域,然后水平提取车牌区域。然后对车牌行区域进行逐列扫描,并对列像素p´进行统计分类,n1´,n2´,...nN´(nj´为第j列的像素个数)。统计X方向蓝色像素点:

Blue_x(1,j)Blue_x(1,j)1 (2.14)

7

江苏大学本科毕业论文

根据像素统计图确定阂值T',确定车牌列区域。

车牌列区域条件:

当nj'T´时,该列是车牌所在列。

将满足车牌列区域的条件合并,就可以分割出完整图像。同理也可分割出其它底色的车牌。

2.3倾斜校正

由于车牌图像摄取的特殊性,车牌图像在水平和垂直方向上都会有不同程度的倾斜,车牌图像在水平方向上的尺寸要比垂直方向上的尺寸大很多,因此垂直方向上的倾斜并不是很明显,一般小于3度。在实际系统中,往往只对水平方向上的车牌倾斜进行几何矫正[13][14]。

在倾斜矫方面,比较典型的算法有:(1)利用传统的Hough变换求取车牌的边框,进而确定车牌的倾斜角。该方法对图像质量要求高,计算量大,时效性差;(2)通过求取车牌字符区域的局部极小和极大特征点再进行投影确定车牌的倾斜角。该方法当遇上车牌上有污迹和噪声时检测精度下降。Radon变换法比传统的Hough变换法以及投影法更能快速有效地检测出车牌的倾斜角度。

Radon变换是计算机图像在某一指定角度射线方向上的投影变换方法。二维函数f(x,y)的投影是其在确定方向上的线积分。可以沿任意角度θ计算函数的投影,即沿任意角度θ都存在函数的Radon变换。通常f(x,y)的Radon变换是一个平行于y轴的线积分:

R(x)f(xcosysin,xsinycos)dy

(2.15)

式中 ysinxcossinx cosy (2.16)

Radon变换检测的直线是对应于在Radon变换结果中坐标(,x)处的峰值,根据和

x确定一条直线。

Radon变换检测车牌的倾斜角度的具体步骤如下:( 1)对定位分割出来的车牌图像,采用最大类间方差法进行二值化,然后采用Sobel算子进行边缘检测;(2)计算二值边缘图像的Radon变换;( 3)找出Radon变换矩阵中的局部极大值R(,x)为车牌图像一条边框的倾斜角度。

检测到车牌水平边倾斜角度后,对车牌图像旋转实现车牌水平校正。旋转变换为:

8

江苏大学本科毕业论文

xxcosysinyxsinycos  (2.17)

2.4字符分割与归一化

在进行车牌的准确定位后,我们需要得到车牌中每个字符的图像,因此需要将车牌图像的字符一个个分割开,即进行车牌的字符分割。车牌字符分割的任务就是把多行或多字符图像中的每个字符从整个图像中分割出来,使其成为单个字符,为下一步将标准的单个字符输入到字符识别模块做准备。字符分割是字符识别的基础,字符分割的质量将直接影响到字符识别的效果。 2.4.1字符的分割

字符分割是将车牌区域分割成若干个单个的字符区域,字符分割的成败与否直接影响到单字的识别效果。如果分割出的字符出现了断裂、粘连,则系统难以识别。字符分割的方法很多,根据处理对象的不同各有相应的方法[15]。

由于标准的车辆牌照(军车、警车、教练车、领事馆车除外)上有七个字符(不包括小圆点),首位为省名缩写(汉字),次位为英文字母,末五位为英文大写字母或阿拉伯数字,字符总长度为409mm,其中单个字符统一宽度为45mm,高90mm,第二、三个字符间间隔为34mm(中间小圆点宽l0mm,小圆点与第二、三个字符间间隔分别为12mm),其余字符间隔为12mm。充分利用这些先验知识有助于单一字符边框的精确切分。

因此车牌字符的长宽比、字符间隙及整个字符群的长度比都是有严格标准的。虽然在车牌照片数字化、提取和校正的过程中会带入一些干扰,但字符群之间的相互关系不会有太大变化。因此,可以充分利用车牌字符固定的高宽比和间距等作为先验知识对车牌图像进行精确的字符定位分割[16]。 算法的主要步骤如下:

(1)求取水平分割线。对定位且校正后的车牌进行水平方向投影。由于图像是经过二值化处理过的,因此,投影后所得的投影高度即为车牌字符的高度。由此可以确定字符的上下两条水平分割线。

(2)求取垂直分割线。对定位且校正后的车牌进行垂直方向投影。根据投影图的特点,可以得出投影图的左边界和右边界,两者之差就可以算出所有字符在水平方向的总长度。 (3)估算车牌尺寸。根据水平分割线和垂直分割线提供的位置信息,利用车牌尺寸的先验知识,即字符的宽与字符总长度比是45: 409,小圆点与第二、三个字符间间隔为12mm,其余字符间隔也为12mm,则间隔与字符总长度比为12: 409。由上一步可得出字符边界和字符总长度,利用车牌尺寸的先验知识,从左右边界分别按比例搜索即可确定出每个字符的具体位置。

这种方法能获得很好的分割效果可以较好地消除了间隔符、字符粘连和左右边框的影响。与常用车牌字符分割方法相比,该方法运算简单,处理速度较快且分割效果好能够满足系统实时性的要求。

9

江苏大学本科毕业论文

2.4.2字符归一化处理

定位出来的车牌图像还不能完全满足后续处理的需要,为了便于后面的字符特征提取的顺利完成,需要对分割出来的字符进行归一化处理。归一化就是要把你需要处理

的数据经过处理后限制在你需要的一定范围内[17]。

首先,把车牌的颜色归一化成黑底白字。由于车牌图像有几类,所以定位出来的车牌可能是黑底白字,也可能是白底黑字,所以有必要进行归一化。在此,为了后续处理的方便,本文把图像都归一化为黑底白字的车牌。本文采用灰度值聚类法来实现,因为统计表明字符区域一般占整个车牌区域的20%左右,所以只要对车牌区域的像素质进行统计之后便可得知当前字符区域是黑色还是白色,若已经是黑底白字,则无需进行处理,否则把颜色进行翻转,翻转的算法见式

g(i,j)255g(i,j) (2.18) 其次,把车牌的尺寸归一化。分割后的字符由于环境等因素的影响,尺寸会有所变化,需对大小不同的字符作变换,使之成为将统一点阵大小的字符,这个过程被称为尺寸归一化。其目的是为了消除字符大小对识别造成的影响,便于在识别中确定判据和准则。由于拍摄距离等原因导致车牌的尺寸大小不一致,为了方便后续处理,统一把车牌尺寸归一化成高为 30个像素宽为 100 像素。该过程是一个图片放大缩小处理,对于放大而言,采用的是最简单的线性插值算法。最后,对比度调整。绝大部分情况下,车牌图像中只含有车牌字符和边框,而统计表明,车牌图像面积中背景占据了 70%~80%的比例,利用此信息可以把非背景部分的像素值调高,使字符与背景的对比度更大,便于后续处理[18]。

2.5字符识别

字符识别是模式识别领域中很活跃的一个分支。模式识别,简单地说就是把一种研究对象,根据其某些特征进行识别并分类。用计算机进行模式识别,实际上是实现一个从“样本空间”到“类别空间”的映射。在特征的提取、表达与分类两者之间有着一种折衷的关系。如果能有效地抽取特征,那么分类就变得容易;如果特征抽取得不合适,那么分类的难度就会增加。字符识别的基本思想是匹配判别。抽取待识别字符特征按照字符识别的原理和预先存储在计算机中的标准字符模式表达形式的集合逐一进行匹配,找出最接近输入字符模式的表达形式,该表达形式对应的字就是识别结果[19]。在这里使用的是模板匹配的识别方法。

首先以二维图像的处理为例介绍一下传统的模板匹配算法。算法的基本思想是:将归一化的字符二值图像与模板库中的字符二值化图像逐个进行匹配,采用相似度的方法计算车牌字符与每个模板字符的匹配程度,取最相似的就是匹配结果。 匹配的步骤为:

10

江苏大学本科毕业论文

(1)依次取出模板字符,将模板字符按照上、下、左、右四个方向,在周围五个像素的范围内滑动,每次分别计算出相似度S值,取其中S的最大值做为字符与模板字符之间的相似度函数。

(2)依次从待识别的字符与模板字符的相似度中找出最大相似度所对应的模板字符,判断是否大于该字符的阈值T,如果S大于T,就是该模板字符,反之,如果S小与T,表示不匹配,那么待识别的字符的匹配结果未找到,则需要重新检测。

在字符切分好后,如果直接将其与模板进行对比,所要对比的信息量比较大,程序运行时间将会大大增加。所以首先对切分好的字符进行特征提取,然后根据提取的信息进行分类,最后输出结果。这里,主要使用了类似九宫格的方法,在图像水平方向上将图像均分成二部分,在每一部分用一条水平方向的扫描线从左到右穿过数字,进行查找;同样的,在垂直方向上也将图像均分成二部分,在每一部分用一条垂直方向的扫描线从上到下穿过数字,进行查找,取这六条线上的特征作为车牌图像的特征。

模板匹配[20]是该算法的最后一步。一般的模板匹配法是用已知的模板和原图像中同样大小的一块区域去对比。然后平移到下一个像素,仍然进行同样的操作直到将所有的位置都对比完。这里只需要将提取出的特征进行对比即可。

具体算法为:给定输入图像I和识别字符类型集{s1,s2,„,sn},那么字符识别问题可以描述为找到相关度量函数C(i)的最大的可信度P(权矩阵的计算得到的各个字符匹配的最大匹配字符的概率。

算法的实现过程为:

1)根据前面提取的特征值将字符进行一个粗略的分类,将其归入可能的字符集合A中,然后使用匹配加权乘法模型,计算k类字符的相关度量函数值C(k) 。

2)从C(k)中找到最大值,并计算出每类字符的加权匹配概率P(Si∣I) , P(Si∣I)最大的字符类Si,即为所求目标。

∣I)。P(Si∣I)是通过加

11

江苏大学本科毕业论文

第三章 车牌识别的软件实现

由于系统运行的过程中,主要进行的都是图像处理,在这个过程中要进行大量的数据处理,所以对电脑配置有一定要求,CPU要求主频在1GHZ及以上,内存在512MB及以上。系统可以运行于Windows98及以上操作系统下,程序调试时使用Matlab7.1版本。

3.1车牌图像的预处理

本节采用了车牌识别系统中图像预处理的常用方法,针对灰度化、图像增强和边缘检测等图像预处理方法进行分析比较。如图3.1所示为车牌预处理流程图。

开始 灰度化 图像增强 边缘检测 结束

图3.1车牌预处理流程图

3.1.1灰度化的仿真结果

根据车牌的实际使用情况,选择加权平均值法进行灰度化,采用

W0.2289R0.5870G0.1140B 灰度转换公式,得到如图3.3所示的灰度变换

图。

12

江苏大学本科毕业论文

图3.2采集原始图像

图3.3灰度变换图像

3.1.2图像增强的仿真结果

采用中值滤波的方法对车牌图像进行效果增强。 采用此种方法对车牌进行灰度变换,可以看出经过上述的分段灰度线性变换后,原来偏暗图像的整体灰度值有所提高,灰度动态范围扩大,对比度也提高了,从而突出了车牌信息。如图3.4为中值滤波后的增强图像。

13

江苏大学本科毕业论文 图3.4中值滤波增强图像

3.1.3边缘检测的仿真结果

如图3.5为采用边缘检测Robert算子的结果图像。

图3.5边缘检测结果图

在车牌图像中边缘相对要少得多,而背景部分存在有大量的边缘,通过对图像进行边缘检测的处理以后,车牌部分得到了加强,非车牌部分在很大程度上被削弱。

试验表明,采用Robert算子时,有许多有用的信息丢失了,只保留了较强的边缘信息,而那些较弱的边缘信息没有体现出来,由于系统设计时只针对边缘明显且噪声低的车牌图像,结合MATLAB实验过程,得出不是每一种图像处理之初都适合滤波和边缘增强。本次汽车车牌的识别,为了保存更多的有用信息,经过多次比较,采用了Robert算子。

3.2 车牌图像的定位

牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图像预处理后的原始灰度图像中确定牌照的具体位置,并将包含牌照字符的一块子图像从整个图像中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。由于牌照图像在原始图像中是很有特征的一个子区域,确切说是水平度较高的横向近似的长方形,它在原始图像中的相对位置比较集中,而且其灰度值与周边区域有明显的不同,因而在其边缘形成了灰度突变的边界,这样就便于通过边缘检测来对图像进行分割。 3.2.1车牌的形态学处理

数学形态学的应用可以简化图像数据,保持它们基本的形态特征,并除去不相干的结构。在本程序中用到了膨胀和闭合这两个基本运算,最后对腐蚀后图像,平滑图像轮廓、从对象中除去小对象。如图3.6分别为腐蚀后图像、平滑图像轮廓、从对象中除去小对象。

14

江苏大学本科毕业论文

a.腐蚀后图像

b.平滑图像轮廓 c.从对象中去除小图像

图3.6 腐蚀后图像、平滑图像的轮廓和从对象中移除小对象后图像

3.2.2区域分割

对车牌的分割可以有很多种方法,本程序是利用车牌的颜色信息的彩色分割方法。根据车牌底色等有关的先验知识,采用彩色像素点统计的方法分割出合理的车牌区域,确定车牌底色白色对应的各自灰度范围,然后行方向统计在此颜色范围内的像素点数量,设定合理的阈值,确定车牌在行方向的合理区域。然后,在分割出的行区域内,统计列方向蓝色像素点的数量,最终确定完整的车牌区域。如图3.7分别显示行方向合理区域和车牌定位后的彩色图像。

图3.7行方向区域和最终定位出来的车牌

3.3 字符分割与归一化

3.3.1字符的分割

字符分割在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。这里采用车牌字符固定的高宽比和间距等作为先验知识对车牌图像进行精确的字符定位分割。字符分割结果如图3.8和3.9所示。

15

江苏大学本科毕业论文

图3.8 裁剪出来的车牌的进一步处理过程图

图3.9分割出来的七个字符图像

3.3.2字符归一化

字符归一化分为两步来实现。首先,把车牌的颜色归一化成黑底白字,其次,把车牌的尺寸归一化。如图3.10即为归一化后的字符图像。

图3.10归一化处理后的七个字符图像

3.4 字符识别

在这里使用的是模板匹配的识别方法。图3.11为字符识别流程图。

16

江苏大学本科毕业论文

开始 输入切分出的字符 模板特征提取 粗分类 求出加权匹配概率最大的字符类 输出结果 结束

图3.11字符识别流程图

采用模板匹配的识别方法对车牌图像的识别结果如图3.12所示。

图3.12字符识别结果图

通过以上的方法,对多幅图像进行了检测,部分图片未能很好的识别出完全正确的车牌,一方面原因是算法还不够精确,系统中采用了近乎水平放置的车牌图像,但没有加入倾斜校正;另外一方面是模板匹配法本身的局限性即容错性和抗干扰能力弱的缺点造成的。本文应用的模板匹配的识别方法,也还需要进一步的改进。

17

江苏大学本科毕业论文

第四章 总结

车牌自动识别系统作为智能交通识别系统的核心,在现代交通管理中心起着举足轻重的作用,它的实现可以加快高速公路、城市道路和停车场管理现代化的进程,在交通部门的违章检测(电子警察)、高速公路自动收费、智能停车场管理等方面有着广泛的应用前景,因此,车牌自动识别系统的研究有很大的实际应用价值。本文基于目前对智能交通系统(ITS)中交通管理系统的发展需求,结合了城域智能交通信号控制系统项目,对车牌照识别(LRP)系统展开的关键技术研究。主要工作由以下几个部分组成:

(1)图像预处理阶段:对实时采集的车牌图像进行预处理如彩色图像的灰度化、图像增强、边缘检测。该方法能够改善图像的质量,使图像更加清晰,并适应于不同条件下拍摄得到的车牌图像,更为精确的提取了字符信息,为后面的字符分割扫清了更多障碍。

(2)车牌定位算法,本文使用数学形态学的基本运算对边缘检测后得到的图像进行再处理,从而实现车牌识别系统中这一关键步骤,分别使用了灰度图像的形态学膨胀算法和闭算法,并利用车牌的颜色信息的彩色分割方法来进行车牌区域分割。

(3)车牌的倾斜校正对车牌字符识别有很大的影响。一个倾斜的车牌字符的识别与一个很正的车牌字符的识别是不一样的。传统上,很多系统采用Hough变换来进行校正。但是Hough变换要从图像中截取较长一段直线来作为参照物,这样就需要前面保留有车牌边缘,因此边缘的横线和竖线都满足需求,这在实际中较难操作。Radon变换法比传统的Hough变换法以及投影法更能快速有效地检测出车牌的倾斜角度。

(4)字符分割算法,这里采用车牌字符固定的高宽比和间距等作为先验知识对车牌图像进行精确的字符定位分割,保证了字符的完整分割。然后,对分割的字符大小归一化处理,为字符识别做好准备。

(5)车牌字符识别是车牌识别系统识别车牌的最后一步。传统算法中模板匹配字符识别和神经网络字符识别都是常用的算法。在这里使用的是模板匹配的识别方法。基于模板匹配的字符识别算法对字符识别之前的车牌的处理算法要求较高,字符清晰度的变化对识别的准确率有较大影响。在实际中为了提高正确率往往需要使用大量的模板进行匹配,处理时间也会相应的增加,需要进一步改进。

18

江苏大学本科毕业论文

参考文献

[1]荣江,王文杰,陈建华。智能车牌识别系统设计与实现。计算机与现代化。2006

[2]刘肃平,陈强。数字图像处理技术在车牌识别中的应用[J]。计算机与现代化,2006(8):119-121 [3]李小平,任江兴,杨德刚。车牌识别系统中若干问题的探讨[J]。北京理工大学学报,2001.1 [4]Yuntao Cui,Qian Huang,Automatic license extraction from moving vehicles,IEEE Transaction on Pattern Analysis and Machine Intelligence,1999,7(4):126-130

[5]Eun Ryung Lee,Kee King,Automatic recognition of a car license plate using color image processing,Journal of Korea Institute of Telematics and Electronics,1995,24(2) :128-131 [6]Luis Salgado. Automatic car plate detection and recognition through intelligent vision engineering. IEEE Trans PAMI,1999,vo1.17:71-76

[7]从爽。面向Matlab工具箱的神经网络理论与应用[M]。合肥:中国科技大学出版社,1998:46-150 [8]彭健敏。车牌识别中的车牌定位与字符识别技术研究及实现[D]。硕士学位论文,湖南大学,2006 [9]张晶。图像边缘检测算法的研究[D]。硕士学位论文,山东大学,2006

[10]韦春桃,程晓宇。LOG算子进行边缘检测的研究[J]。桂林工学院学报,1999(2): 1-3 [11]于深洋。自然环境下的车牌定位与字符分割方法的研究[D]。硕士学位论文,哈尔滨工业大学,2006

[12]余棉水,黎绍发,陈智斌。车牌自动识别技术的研究[J]。机电工程技术,2003(1):55-56 [13]尹蔚峰。车牌识别系统相关技术研究[D]。硕士学位论文,东南大学,2006

[14]权伟,郑南宁,贾新春。复杂背景下的车牌照宇符提取方法研究[J]。信息与控制,2002(11):25-29 [15]任明亮,范勇。一种快速精确的汽车牌照字符切分算法[J]。四川大学学报(自然科学版),2002,39(3):450-454

[16]迟晓君,董军宇。汽车牌照自动识别系统的研究与实现[D]。硕士学位论文,中国海洋大学, 2006 [17]朱卫健。实时车牌识别系统关键技术的研究[D]。硕士学位论文,东南大学,2006 [18]尹蔚峰。车牌识别系统相关技术研究[D]。硕士学位论文,东南大学,2006 [19]王鹏。汽车牌照自动识别方法研究[D]。硕士学位论文,东南大学,2006 [20]黎涛。车牌字符识别技术研究[D]。硕士学位论文,四川大学,2006

19

江苏大学本科毕业论文

致 谢

光阴茬再,转眼之间四年的学习生活就要结束了,这段时光是我生涯中收获最多也是最值得纪念的经历。这本论文作为对我这段学习生活的总结,其完成过程中得到了很多人的大力帮助,回想起来,有太多的经历值得珍藏,太多的人值得感谢。为论文做的工作是很多的,从选定论文题目那天起,便开始了查阅资料和不断做实验的工作。虽然辛苦,但我的毕业论文也划上了圆满的句号。回顾四年来的学习生活,我身边的老师、同学和家人给了我许多帮助和勉励,在此我对他们表示最真挚的感谢!

首先,我要特别感谢我的指导老师宋雪桦。从论文题目的选定到论文写作的过程,老师都对我耐心的指导,常常让我在思考过后,有一种“山重水复疑无路,柳暗花明又一村”的豁然开朗。宋雪桦老师严谨的治学态度和脚踏实地、一丝不苟、潜心钻研的精神使我深受激励并将收益终身,是他的谆谆教导和严格要求使我如期完成论文。您在论文上倾注的大量心血,您宽厚待人的学者风范令我无比感动!再次向老师表示深深的谢意!

感谢我的授课老师们。你们丰富的授课内容拓宽了我的视野,让我能更顺利地完成这篇论文。

感谢我的室友们,我们在一起四年的日子来,你们不仅让我感受到友情的力量,也让我感受到生活的愉悦。

还要感谢支持和帮助我的朋友们,在人生的道路上正是由于你们,我的生活才如此的绚丽和多姿!

特别感谢我的父母,他们对我的鼓励使我克服了一切困难,使得论文得以顺利完成。感谢他们的教导和养育之恩,感谢他们这么多年来对我的关怀照顾和鼓励,给予我前进的动力。

最后,感谢参与论文评审和对论文提出宝贵意见和建议的各位老师和专家们,在此向各位专家表示最诚挚的谢意。

20

江苏大学本科毕业论文

附 录

部分程序 clear; clc; close all; chos=0;

possibility=11;

while chos~=possibility,

chos=menu('车牌定位系统','载入图片','灰度化','图像增强','边缘检测','腐蚀','平滑轮廓',...

'定位','定位加工处理','字符分割、识别','退出'); %载入图像 if chos==1, clc;

[namefile,pathname]=uigetfile('*.jpg','Select image'); if namefile~=0

I=imread(strcat(pathname,namefile)); imshow(I);

title('采集图象'); end end %灰度化 if chos==2,

I1=rgb2gray(I); %gray=rgb2gray(0.2989 * R + 0.5870 * G + 0.1140 * B) imshow(I1); title('灰度化'); end

%图像增强1(邻域平均平滑滤波) %if chos==3, % h=ones(3,3)/9; % I2=imfilter(I1,h); % imshow(I2);

% title('邻域平均平滑滤波'); %end

21

江苏大学本科毕业论文

%图象增强2(中值滤波) if chos==3,

I2=medfilt2(I1,[3 3]); imshow(I2); title('中值滤波'); end

%图像增强3(自适应滤波) %if chos==3,

% I4=wiener2(I1,[5,5]); % imshow(I2);

% title('自适应滤波');

% figure(1),subplot(1,2,1),imshow(I2);title('邻域平均平滑滤波'); % figure(1),subplot(1,2,2),imshow(I3);title('中值滤波'); % figure(1),subplot(1,3,3),imshow(I4);title('自适应滤波'); % end

%边缘检测1(robert算子) if chos==4,

I3=edge(I2,'robert',0.15,'both'); imshow(I3);

title('边缘检测(robert算子)'); end

%边缘检测2(canny算子) % if chos==4,

% I2=edge(I1,'canny'); % imshow(I2);

% title('边缘检测(canny算子)'); % end

%边缘检测3(sobel算子) % if chos==4,

% I6=edge(I2,'sobel'); % imshow(I6);

% title('边缘检测(sobel算子)'); % end

%边缘检测4(Prewitt算子) % if chos==4,

22

江苏大学本科毕业论文

% I4=edge(I2,'Prewitt'); % imshow(I2);

% title('边缘检测(Prewitt算子)'); % end

%边缘检测5(log算子) % if chos==4,

% I5=edge(I2,'log'); % imshow(I2);

% title('边缘检测(log算子)');

% figure(1),subplot(2,2,1),imshow(I3);title('边缘检测(robert算子)'); % figure(1),subplot(2,2,2),imshow(I6);title('边缘检测(sobel算子)'); % figure(1),subplot(2,2,3),imshow(I4);title('边缘检测(Prewitt算子)');

% figure(1),subplot(2,2,4),imshow(I5);title('边缘检测(log算子)'); % end %腐蚀 if chos==5, se=[1;1;1]; I4=imerode(I3,se);

imshow(I4);title('腐蚀后图像');

%figure(1),subplot(1,3,1),imshow(I4);title('腐蚀后图像'); end if chos==6,

se=strel('rectangle',[25,25]); % 创建一个形态学结构单元 Create morphological structuring element

I5=imclose(I4,se); % 关闭形态学图像 Morphologically close image figure(1),subplot(1,2,1),imshow(I5);title('平滑图像的轮廓'); I6=bwareaopen(I5,2000); %去除对象中不相干的小对象

figure(1),subplot(1,2,2),imshow(I6);title('从对象中移除小对象'); % imwrite(I6,'10.jpg') end %车牌定位 if chos==7,

%%%%%%%%%%% 统计分析 %%%%%%%%%%%%%%% %%%%%%%% Y 方向 %%%%%%%%%% [y,x,z]=size(I6);

23

江苏大学本科毕业论文

myI=double(I6); tic

Blue_y=zeros(y,1); for i=1:y for j=1:x

if(myI(i,j,1)==1)

Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计 end end end

[temp MaxY]=max(Blue_y);%Y方向车牌区域确定 PY1=MaxY;

while ((Blue_y(PY1,1)>=5)&&(PY1>1))

PY1=PY1-1; %往上统计横向定位位置 end PY2=MaxY;

while ((Blue_y(PY2,1)>=5)&&(PY2PY2=PY2+1; %往下统计横向定位位置 end

IY=I(PY1:PY2,:,:); %确定上下基本范围 %%%%%% X方向 %%%%%%%%%

Blue_x=zeros(1,x);%进一步确定x方向的车牌区域 for j=1:x

for i=PY1:PY2

if(myI(i,j,1)==1)

Blue_x(1,j)= Blue_x(1,j)+1; end end end PX1=1;

while ((Blue_x(1,PX1)<3)&&(PX1PX1=PX1+1; %往右统计横向定位位置 end PX2=x;

while ((Blue_x(1,PX2)<3)&&(PX2>PX1))

PX2=PX2-1; %往左统计横向定位位置

24

江苏大学本科毕业论文

end

PX1=PX1-1;%对车牌区域的校正 PX2=PX2+1;

Plate=I(PY1-1:PY2+2,PX1:PX2+28,:); %IMG_2758和car3.b

% Plate=I(PY1+8:PY2-4,PX1+4:PX2-4,:);%预留多些利于倾斜校正,基本确定矩形车牌区域

% Plate=I(PY1:PY2-8,PX1:PX2,:); %car1和car3.bmp Plate1=Plate;

% dw=I(PY1:PY2-8,PX1:PX2,:); t=toc % 读取计时

% figure(2),subplot(2,2,1),plot(whitr_y),grid,title('Y方向统计'); % figure(2),subplot(2,2,2),plot(whirt_x),grid,title('X方向统计'); figure(2),subplot(1,2,1),imshow(IY);title('行方向合理区域'); figure(2),subplot(1,2,2),imshow(Plate);title('车牌定位后的彩色图像');

%imwrite(dw,'dw.jpg');

%[filename,filepath]=uigetfile('dw.jpg','输入一个定位裁剪后的车牌图像'); %jpg=strcat(filepath,filename); %a=imread('dw.jpg'); end

% 某些图像进行操作 if chos==8, % 膨胀或腐蚀

% se=strel('square',3); % 使用一个3X3的正方形结果元素对象对创建的图像进行膨胀

% 'line'/'diamond'/'ball'...

%se=eye(2); % eye(n) returns the n-by-n identity matrix 单位矩阵 %b=rgb2gray(a); b=rgb2gray(Plate);

imwrite(b,'1.车牌灰度图像.jpg');

figure(3);subplot(2,2,1),imshow(b),title('1.车牌灰度图像'); g_max=double(max(max(b))); g_min=double(min(min(b)));

T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值 [m,n]=size(b);

d=(double(b)>=T); % d:二值图像

25

江苏大学本科毕业论文

imwrite(d,'2.车牌二值图像.jpg');

figure(3);subplot(2,2,2),imshow(d),title('2.车牌二值图像') % 滤波

h=fspecial('average',3); d=im2bw(round(filter2(h,d))); imwrite(d,'4.均值滤波后.jpg');

figure(3),subplot(2,2,3),imshow(d),title('3.均值滤波后') [m,n]=size(d);

if bwarea(d)/m/n>=0.365 Plate=imerode(d,se); elseif bwarea(d)/m/n<=0.235 Plate=imdilate(d,se); end

imwrite(Plate,'4.膨胀或腐蚀处理后.jpg');

figure(3),subplot(2,2,4),imshow(d),title('4.膨胀或腐蚀处理后') end

%字符分割、识别 if chos==9,

% 寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割 d=qiege(d); [m,n]=size(d);

figure,subplot(2,1,1),imshow(d),title(n) k1=1;k2=1;s=sum(d);j=1; while j~=n while s(j)==0 j=j+1; end k1=j;

while s(j)~=0 && j<=n-1 j=j+1; end k2=j-1;

if k2-k1>=round(n/6.5)

[val,num]=min(sum(d(:,[k1+5:k2-5]))); d(:,k1+num+5)=0; % 分割 end

26

江苏大学本科毕业论文

end % 再切割 d=qiege(d); % 切割出 7 个字符

y1=10;y2=0.25;flag=0;word1=[]; while flag==0 [m,n]=size(d); left=1;wide=0;

while sum(d(:,wide+1))~=0 wide=wide+1; end

if widetemp=qiege(imcrop(d,[1 1 wide m])); [m,n]=size(temp); all=sum(sum(temp));

two_thirds=sum(sum(temp([round(m/3):2*round(m/3)],:))); if two_thirds/all>y2

flag=1;word1=temp; % WORD 1 end

d(:,[1:wide])=0;d=qiege(d); end end

% 分割出第二个字符 [word2,d]=getword(d); % 分割出第三个字符 [word3,d]=getword(d); % 分割出第四个字符 [word4,d]=getword(d); % 分割出第五个字符 [word5,d]=getword(d); % 分割出第六个字符 [word6,d]=getword(d); % 分割出第七个字符

27

江苏大学本科毕业论文

[word7,d]=getword(d);

subplot(5,7,1),imshow(word1),title('1'); subplot(5,7,2),imshow(word2),title('2'); subplot(5,7,3),imshow(word3),title('3'); subplot(5,7,4),imshow(word4),title('4'); subplot(5,7,5),imshow(word5),title('5'); subplot(5,7,6),imshow(word6),title('6'); subplot(5,7,7),imshow(word7),title('7'); [m,n]=size(word1);

% 商用系统程序中归一化大小为 40*20,此处演示 word1=imresize(word1,[40 20]); word2=imresize(word2,[40 20]); word3=imresize(word3,[40 20]); word4=imresize(word4,[40 20]); word5=imresize(word5,[40 20]); word6=imresize(word6,[40 20]); word7=imresize(word7,[40 20]);

subplot(5,7,15),imshow(word1),title('1'); subplot(5,7,16),imshow(word2),title('2'); subplot(5,7,17),imshow(word3),title('3'); subplot(5,7,18),imshow(word4),title('4'); subplot(5,7,19),imshow(word5),title('5'); subplot(5,7,20),imshow(word6),title('6'); subplot(5,7,21),imshow(word7),title('7'); imwrite(word1,'1.jpg'); imwrite(word2,'2.jpg'); imwrite(word3,'3.jpg'); imwrite(word4,'4.jpg'); imwrite(word5,'5.jpg'); imwrite(word6,'6.jpg'); imwrite(word7,'7.jpg');

liccode=char(['0':'9' 'A':'Z' '苏豫陕京辽鲁浙']); %SubBw2=zeros(40,20); l=1; for I=1:7

ii=int2str(I);

28

建立自动识别字符代码表 江苏大学本科毕业论文

t=imread([ii,'.jpg']);

SegBw2=imresize(t,[40 20],'nearest'); if l==1 %第一位汉字识别 kmin=37; kmax=42;

elseif l==2 %第二位 A~Z 字母识别 kmin=11; kmax=36;

elseif l>=3 & l<=5 %第三位以后是字母或数字识别 kmin=1; kmax=36; else kmin=1; kmax=10; end

for k2=kmin:kmax

fname=strcat('字符模板\\',liccode(k2),'.jpg'); SamBw2 = imread(fname); for i=1:40 for j=1:20

SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j); end end

% 以上相当于两幅图相减得到第三幅图 Dmax=0; for k1=1:40 for l1=1:20

if ( SubBw2(k1,l1) > 0 | SubBw2(k1,l1) <0 ) Dmax=Dmax+1; end end end

Error(k2)=Dmax; end

Error1=Error(kmin:kmax); MinError=min(Error1);

29

江苏大学本科毕业论文

findc=find(Error1==MinError);

Code(l*2-1)=liccode(findc(1)+kmin-1); Code(l*2)=' '; l=l+1; end

figure(5),imshow(Plate1),title (['车牌号码:', Code],'Color','r'); end

if chos==10;

exit DuanJing_final.m; end end

30

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务