您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 综合/其它 > MATLAB车牌识别论文加源码模板
姓名学号成绩xxxx大学数字图像处理本科生课程论文论文题目:___车牌识别方法研究______完成时间:___2016年6月1日_______所在专业:___软件工程______________所在年级:___大三年级______________1基于MATLAB的车牌识别方法研究xxx级软件专业1班xxxxx摘要:汽车车牌的识别是智能交通管理的重要组成部分之一。本文主要介绍车牌区域提取、字符切割、字符识别。车牌区域提取主要包括图像灰度图转化、图像边缘检测、灰度图腐蚀、图像平滑处理、边界值计算。字符切割主要包括图像去噪处理、图像膨胀和腐蚀处理。字符识别主要包括图像膨胀和腐蚀处理、字符归一化。关键词:MATLAB、车牌区域提取、字符识别、字符切割1研究背景随着经济社会的迅猛发展,人们的生活水平的提高,机动车辆的数量也越来越多。为了提高车辆的管理效率,缓解公路上的交通压力,我们必须找到一种解决方案。而作为汽车“身份证”的汽车车牌,是在公众场合能够唯一确定汽车身份的凭证。我们可以以此为依据,设计一种车牌识别系统监控各个车辆的情况。车牌识别的难点:①我国汽车牌照自身特征的复杂性1)汉字、字母、数字混合。我国的车牌不单单有英文字母和阿拉伯数字,还有汉字。2)颜色种类多。国外的车牌颜色种类相对于国内较少一些,我国的车牌颜色种类较多。3)人为因素复杂。由于环境、道路或者人为因素造成车牌有严重污渍、车牌模糊不清或者车牌偏斜角度很大的车辆,在我国都可以上路行驶。4)车牌格式多。我国的车牌格式很多,包括:民用车牌、公安警察车牌、武警车牌、军车车牌、外交车牌、特种车牌、消防车牌等。②外部环境影响1)外部光照条件各不相同,白天和晚上的光照各不相同。光照对采集的图像质量产生很大的影响。不同的光照角度对车牌光照的不均匀影响也很大。不同的气候条件、背景光照环境、车牌反光程度都决定了车牌的亮度特征。2)外界背景的复杂程度也影响车牌的定位准确率。背景中和车牌区域当中有许多和车牌特征相似的长方形区域,这些容易给车牌定位造成误判导致车牌定位的准确率降低。22主要理论概况本图像预处理模块是将图像灰度化和用Roberts算子进行边缘检测的步骤。车牌定位和分割采用的是利用数学形态法来确定车牌位置,再利用车牌彩色信息的彩色分割法来完成车牌部位分割。字符的分割采用的方法是以二值化后的车牌部分进行垂直投影,然后在对垂直投影进行扫描,从而完成字符的分割。本文即是针对其核心部分进行阐述并使用MATLAB软件环境中进行字符分割的仿真。一个完整的车牌号识别系统要完成从图像采集到字符识别输出,过程相当复杂,基本可以分成硬件部分跟软件部分,硬件部分包括系统触发、图像采集,软件部分包括图像预处理、车牌位置提取、字符分割、字符识别四大部分。33研究的主要内容3.1车牌识别研究内容车牌定位的研究现状车牌定位决定其后的车牌字符分割和识别,因此车牌定位是车牌识别技术中最关键的一步。车牌定位的目的是从包含整个车辆的图像中找到车牌区域的图像。车牌定位方法的出发点是利用车牌区域的特征来判断牌照,将车牌区域从整幅车辆图像中分割出来。车牌字符识别的研究现状车牌字符识别就是对分割出的待识别的字符进行识别处理。车牌的字符由有限的汉字、英文字母和数字组成。目前车牌字符识别最常用于车牌字符识别的方法是基于模板匹配的方法、基于特征分类的方法两大类。字符分割算法一直在不断的完善。针对车牌的字符分割,是字符分割的一个具体应用,目前根据车牌的字符特征提出的算法主要有:基于先验知识的分割算法、基于投影轮廓和拓扑结构的分割算法等。例如,黄可为等利用视觉神经生理学和认知学实验结果,归纳出一种仿生目标搜索策略将其运行到车牌字符分割中。吴进军等根据车牌字符的排列规律和字符的几何特征,提出了一种基于第三个字符定位的车牌字符分割方法,很好地解决了车牌定位后的字符缺损情况。3.2车牌识别系统程序设计3.2.1车牌区域提取图像读取及车牌区域提取主要有:图像灰度图转化、图像边缘检测、灰度图腐蚀、图像的平滑处理以及车牌区域的边界值计算。其程序流程图如下:输入车牌图象灰度校正平滑处理提取边缘4图3.1预处理及边缘提取框图3.2.2图像灰度图转化由于车牌的底色不同,所以从RGB图像直接进行车牌区域提取存在很大困难,但不管哪种底色的车牌,其底色与上面的字符颜色的对比度大,将RGB图像转化成灰度图像时,车牌底色跟字符的灰度值会相差很大。。原图、灰度对于将彩色图象转换成灰度图象时,图象灰度值H可由下面的公式计算:0.2290.5870.114HRGB(3.1)3BGRH(3.2)通过程序运行其效果图见图3.2和图3.3:图3.2原始图像5图3.3灰度图像经过程序运行出来的灰度图可以比较容易的识别出车牌的区域,达到了预期的灰度效果。3.2.3图像的边缘检测在Matlab中利用函数edge()实现边缘检测,具体的用法如下所示:Car_Image_Bin=edge(Car_Image_Gray,'robert',0.15,'both');Robert算子采用对角方向相邻两像素之差,其计算公式如下:,1,1xffxyfxy(3.3)1,,1yffxyfxy(3.4)其幅值为:错误!未找到引用源。(3.5)使用边缘检测,腐蚀效果如图3.4所示:6图3.4边缘效果图基本上达到了边缘检测的效果。但是,在车牌附近的其他区域也由于各种干扰的影响,也存在一些白色区域。所以要对图像做进一步的处理,用灰度图腐蚀来消除多余的边界点。3.2.4灰度图腐蚀所谓腐蚀即一种消除边界点,使边界向内部收缩的过程。利用它可以消除小而且无意义的物体。腐蚀的规则是输出图像的最小值是输入图像领域中的最小值,在一个二值图像中,只要有一个像素值为0,则相应的输出像素值为0。本系统使用imerode()函数,Car_Image_Erode=imerode(Car_Image_Bin,Se);腐蚀后如图:7图3.5腐蚀效果图已经得到了车牌图像的轮廓线了,只要再经过适当的处理即可把车牌提出出来。3.2.5图像平滑处理得到车牌区域的图像轮廓线后,由于图像的数字化误差和噪声直接影响了脚点的提取,因此在脚点提取之前必须对图像进行平滑处理,Matlab有一个图像平滑处理函数imclose()Car_Image_Perform=imclose(Car_Image_Erode,Se);结构单元中Se一个小于对象闭合图形,只要两个封闭域的距离小于Se,就将这两个连接成一个连通域,Se生成方式采用Se=strel('rectangle',[25,25]);由于车牌图像经过腐蚀以后只剩下车牌区域以及车的标志。在程序运行的图像平滑后效果如下:8图3.6平滑处理后效果从平滑后的效果图分析,达到了预定的目标。消除了图像的数字化误差和噪声对脚点的直接提取的影响。3.2.6移除小对象图像平滑处理了,可能会有多个闭合区域,对于不是车牌区域的必须予以删除,Matlab提供了一个函数bwareaopen(),用于删除二值图像中面积小于一个定值的对象,默认情况下使用8邻域,Car_Image_Perform2=bwareaopen(Car_Image_Perform,2000);这样,Car_Image_Perform中面积小于2000的对象都被删除了。小对象被删除后的图像如图3.7所示:9图3.7移除小对象后效果图移除小对象后的效果图已经非常明显了,图像中最后只存在车牌区域,其他的图像已经完全滤除掉了,包括小物体,车的标志等影响已经没有了。3.2.7车牌区域的边界值计算采用水平与垂直双向投影法。水平坐标的确定,先定义一个1x的数组,其中错误!未找到引用源。为原始图像的宽度值,然后将二值图像垂直投影到x轴。从直方图中基本可以看书水平方向上的两个分界线,为了便于处理,该课题将像素值临界值定量化,取值5个像素。从左向右寻找第一个1值像素大于5的错误!未找到引用源。坐标为水平方向左侧分界线,从右向左寻找到第一个1值像素量大于5的为右侧分界线,程序可以用for循环语句。垂直方向的分界线可用同样的方法实现。分界线计算后,即可从原图像中剪切出只包含车牌的区域图像。剪切得到的图像如下。图3.9为RGB图像切割出来的图像:10图3.9原图中的车牌区域图像对比原始图像与二值图裁减图可以看出,车牌的四个边界值基本上被确定下来了,这样就可以从原始图像中直接确定车牌的区域了。所以车牌就成功地被提取出来了3.2.8车牌处理先将RGB图像转换成灰度值,再将灰度图转化成二进制图,在Matlab实现方式如下:T=round(License_Image_Gray_max-(License_Image_Gray_max-License_Image_Gray_min)/3);同时采集大的图像噪点依然存在,因此可以通过处理图像的低频部分来锐化图像。这里采用高通滤波算法。腐蚀已经在在上文介绍,膨胀刚好与腐蚀相反,运算规则是输出图像的像素值是输入图像邻域中的最大值,在一个二值图像中,只要一个像素值为1,则相应的输出像素值为1。根据经验值,车牌图像中,字符面积与车牌面积之比在(0.235,0.365)之间,因此计算字符面积与车牌面积比值,如果大于0.365则对图像进行腐蚀,如果小于0.235则对图像进行膨胀,11在这里结构元素Se使用一个二维单位矩阵1001错误!未找到引用源。。图3.12车牌处理后效果124结论根据车牌特点,车牌定位的算法分为三类,一类是基于边缘的,一类是基于颜色的,一类是基于机器学习的等。这里我采用的是边缘检测的方法实现定的。字符分割的方法也有多种:1.基于聚类分析的字符分割;2.投影分割的方法;3.基于模板匹配的字符分割等。最常用的是投影分割,主要是针对在车牌定位,图像预处理后比较规则的车牌图像。优点是程序逻辑设计简单,循环执行功能单一,便于设计和操作,程序执行时间短。字符识别的基本方法通常又三类:1.结构特征分析方法;2.模板匹配法;3.神经网络法。此处采用的是模板匹配的方法,即是将要识别的字符与事先构造好的模板进行比对,根据与模板的相似度的大小来确定最终的识别结果。但是系统本身还存在许多不足,特别是对图像的分割与识别,目前还存在一定问题。距离具体实用的要求仍有很大差距,但我却在这次学习中学到了很多知识!参考文献[1]张红,数字图像处理与分析[2]叶晨洲,廖金周,一种基于纹理的牌照图象二值化方法[3]刘阳,伊铁源等.数字图象处理应用于车辆牌照的识别[4]崔江、王友仁.车牌自动识别方法中的关键技术研究[5]韩勇强、李世祥.汽车牌照子图像的定位算13附录:程序源码%function[d]=main()closeallclc%清空命令窗口的所有输入和输出,类似于清屏%自动弹出提示框读入图像[filename,filepath]=uigetfile('.jpg','输入一个需要识别的车牌图像');%直接自动读入%file=strcat(filepath,filename);%strcat函数:连接字符串;把filepath的字符串与filename的连接,即路径/文件名I=imread(file);figure('name','原图'),imshow(I);title('原图')%图像增强%h=ones(5,5)/25;%过滤器h%I=imfilter(I,h);%真彩色增强%figure('name','真彩色增强');imshow(I);title('真彩色增强');I1=rgb2gray(I);%RGB图像转灰度图像figure('name','灰度处理前'),subplot(1,2,1),imshow(I1);title('灰度处理前的灰度图');subplot(1,2,2),imhist(I1);title('灰度处理前的灰度图直方图');%线性灰度变换I1=imadjust(I1,[0.3,0.7],[]);figure('name','灰度处理后'),subplot(1,2,1
本文标题:MATLAB车牌识别论文加源码模板
链接地址:https://www.777doc.com/doc-3702822 .html