欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于Matlab车牌识别课程设计论文.docx

    • 资源ID:16448211       资源大小:516.09KB        全文页数:30页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于Matlab车牌识别课程设计论文.docx

    1、基于Matlab车牌识别课程设计论文课程设计(论文)说明书题 目: 基于Matlab车牌识别 院 (系): 信息与通信学院 专 业: 通信工程 摘 要近几年,车牌识别系统作为智能交通的一个重要方向越来越受到重视。车牌识别系统可以应用于停车场管理系统、高速公路超速管理系统、城市十字路口的“电子警察”、小区车辆管理系统等各个领域。矚慫润厲钐瘗睞枥庑赖。本论文基于Matlab,使用c语言编程来实现车牌识别。车牌识别主要经过牌照定位,即定位图片中的牌照位置;牌照字符分割,就是把牌照中的字符分割出来;牌照字符识别,也就是把分割好的字符进行识别,最终组成牌照号码。聞創沟燴鐺險爱氇谴净。关键词:Matlab

    2、;c语言;定位;分割;识别;Abstract In recent years, the license plate recognition system as an important direction of the intelligent transportation is more and more attention. License plate recognition system can be used in the highway speeding car park management system management system of urban intersection

    3、 electronic police district vehicle management system and other fields.残骛楼諍锩瀨濟溆塹籟。In this paper, based on Matlab, using c language programming to realize the license plate recognition. License plate recognition is mainly through the license plate localization, namely, positioning image of license pl

    4、ate location; Character segmentation of license plate character segmentation, is the license plate; License plate character recognition, that is, the good character segmentation, which can identify of license plate number.酽锕极額閉镇桧猪訣锥。Key words:Matlab;C programming language; Positioning; Segmentation;

    5、 identify彈贸摄尔霁毙攬砖卤庑。引 言车牌识别系统目前广泛应用于监测报警,超速违章处罚,车辆出入管理,自动放行,高速公路收费管理,计算车辆旅行时间,牌照号码自动登记.氬嚕躑竄贸恳彈瀘颔澩。车牌识别是利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别的模式识别技术。技术的核心包括车牌定位算法、车牌字符分割算法和光学字符识别算法等。一个完整的车牌识别系统应包括车辆检测、图像采集、车牌识别等几部分。当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。车牌识别单元对图像进行处理,定位出车牌位置,再将车牌中的字符分割出来进行识别,最后组成车牌号码输出。釷鹆資贏車贖孙滅獅赘

    6、。本文主要讲述我完成这次课设所经历的三个阶段:总体方案设计、相关资料查询、软件实现。在介绍我本次课程设计的设计原理的同时,也侧重同时记录了我是如何对于设计过程中遇到的问题进行分析和解决的。同时,我也着重介绍了我所用到的相关软件。怂阐譜鯪迳導嘯畫長凉。1 设计方案1.1总体设计目标本次课设,设计的目标是通过matlab软件,结合c语言编程,来实现车牌的识别。一个完整的车牌识别系统应包括车辆检测、图像采集、图像预处理、车牌定位、字符分割、字符识别等单元。本次课设的目标就是基于matlab和c语言编程,通过对车辆检测,还有采集车辆图片,和图像预处理,以及对车牌的定位,和字符的分割,最后对字符进行识别

    7、,最终可以实现车牌的识别。谚辞調担鈧谄动禪泻類。 1.2总体设计组成框图系统框图如下:图1 系统框图运用matlab软件的相关功能和c语言编程,对采集的图像对图像进行预处理,并用matlab软件和c语言,来定位车牌的位置,最后进行字符的分割,然后识别字符,最后就输出一个完整的车牌,从而识别车牌。嘰觐詿缧铴嗫偽純铪锩。2.Matlab相关功能2.1使用matlab的优点(1) Matlab绘图功能很强大,但在VC+,VB语言里绘图都很不容易,但Matlab里数据的可视化程度非常高,并且具有较强的编辑图形界面的能力。熒绐譏钲鏌觶鷹緇機库。(2) Matlab语言简单,入门容易,程序设计不严格,自由

    8、度大,例如用户无需对矩阵预定义即可使用。 (3)Matlab语言简洁紧凑,使用方便灵活,库函数丰富,并且内部集成了很多工具箱,为程序开发提供现成模块。鶼渍螻偉阅劍鲰腎邏蘞。(4)Matlab的可移植性很好,基本上不做修改就可以在在各种型号的计算机和操作系统上运行。2.2 matlab软件简介MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面

    9、及与调用其它语言(包括C,C+和FORTRAN)编写的程序。纣忧蔣氳頑莶驅藥悯骛。尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。颖刍莖蛺饽亿顿裊赔泷。MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要

    10、应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。濫驂膽閉驟羥闈詔寢賻。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。銚銻縵

    11、哜鳗鸿锓謎諏涼。3 软件部分设计方案及仿真3.1 图像的读取目前比较常用的图像格式有*.BMP、*.JPG、*.GIF、*.PCX、*.TIFF 等,本课题采集到的图片是*.JPG 的格式。因为由*.JPG图像时一个软件开发联合会组织制定、有损压缩格式,能够将图像压缩在很小的储存空间,而且广泛支持 Internet 标准,是面前使用最广的图片保存和传输格式,大多数摄像设备都以*.JPG格式保存。利用图像工具箱的挤貼綬电麥结鈺贖哓类。Car_Image_RGB=imread(Image_Name);即可将图像读取出来,这样读取得到的是RGB图像,RGB图像分别用红、蓝、绿三个色度值为一组代表每个

    12、像素的颜色,因此Car_Image_RGB是一个的数组,m、n表示图像像素的行、列数。赔荊紳谘侖驟辽輩袜錈。图2 原始图像3.2 图像预处理考虑到现有牌照的字符与背景的颜色搭配一般有蓝底白字、黄底黑字、白底红字、绿底白字和黑底白字等几种,利用不同的色彩通道就可以将区域与背景明显地区分出来,例如,对蓝底白字这种最常见的牌照,采用蓝色B 通道时牌照区域为一亮的矩形,而牌照字符在区域中并不呈现。因为蓝色(255,0,0)与白色(255,255,255)在B 通道中并无区分,而在G、R 通道或是灰度图象中并无此便利。同理对白底黑字的牌照可用R 通道,绿底白字的牌照可以用G 通道就可以明显呈现出牌照区域

    13、的位置,便于后续处理。原图、灰度图及其直方图见图2与图3。对于将彩色图象转换成灰度图象时,图象灰度值可由下面的公式计算:塤礙籟馐决穩賽釙冊庫。 G=0.110B+0.588G+0.302R (1)裊樣祕廬廂颤谚鍘羋蔺。G= (2)提取边缘图3 预处理及边缘提取流程图3.3. 图象的边缘检测在Matlab中利用函数edge()实现边缘检测。Car_Image_Bin=edge(Car_Image_Gray,robert,0.15,both);仓嫗盤紲嘱珑詁鍬齊驁。在edge()函数中有Sobel算子,Prewitt算子,Roberts算子,Log算子,Canny算子及Robert算子,几种算法相

    14、比之下,Roberts算子算法简单,计算量最小。因此本课题使用了Robert算子。绽萬璉轆娛閬蛏鬮绾瀧。Roberts边缘检测算子是一种利用局部差分算子寻找边缘的算子, 根据任一相互垂直方向上的差分都可用来估计梯度,Robert 算子采用对角方向相邻两像素之差, 骁顾燁鶚巯瀆蕪領鲡赙。 ,其幅值为: Robert梯度以为中心,所以他度量了点处和方向(相互正交)的灰度变化。适当取门限T,做如下判断:,(x,y)为阶跃状边缘点。Roberts边缘检测算子相当于用和对图像进行卷积。0.15为敏感度值,both表示双向检测算法。瑣钋濺暧惲锟缟馭篩凉。3.4图像灰度化彩色图像包含着大量的颜色信息,不但在

    15、存储上开销很大,而且在处理上也会降低系统的执行速度,因此在对图像进行识别等处理中经常将彩色图像转变为灰度图像,以加快处理速度。由彩色转换为灰度的过程叫做灰度化处理。选择的标准是经过灰度变换后,像素的动态范围增加,图像的对比度扩展,使图像变得更加清晰、细腻、容易识别。鎦诗涇艳损楼紲鯗餳類。将彩色图像转换为黑白并显示Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图figure,imshow(Sgray),title(原始黑白图像);对原始图像进行开操作得到图像背景图像:s=strel(disk,13); strei函数Bgray=imopen(Sgray,s);打开

    16、sgray s图像figure,imshow(Bgray);title(背景图像);输出背景图像灰度图像与背景图像作减法,对图像进行增强处理:Egray=imsubtract(Sgray,Bgray);两幅图相减figure,imshow(Egray);title(增强黑白图像);输出黑白图像图4 边缘见效果图3.5图像平滑处理得到图像的轮廓线后,由于图像的数字化误差和噪声直接影响了脚点的提取,因此在脚点提取之前必须对图像进行平滑处理,Matlab有一个图像平滑处理函数imclose(),它与开运算相反,融合窄的缺口和细长的弯口,去掉小洞,填补轮廓上的缝隙。栉缏歐锄棗鈕种鵑瑶锬。Car_Ima

    17、ge_Perform=imclose(Car_Image_Erode,Se);结构单元Se一个小于对象闭合图形,只要两个封闭域的距离小于Se,就将这两个连接成一个连通域,Se生成方式采用:Se=strel(rectangle,25,25);辔烨棟剛殓攬瑤丽阄应。即Se是一个一个的矩形,使用矩形是因为车牌是一个矩形,这样,可以是提取的图像最接近预期效果。图像经平滑后效果如下:峴扬斕滾澗辐滠兴渙藺。图5 平滑处理后效果图像平滑处理了,可能会有多个闭合区域,对于不是车牌区域的必须予以删除,Matlab提供了一个函数bwareaopen(),用于删除二值图像中面积小于一个定值的对象,默认情况下使用8邻

    18、域,詩叁撻訥烬忧毀厉鋨骜。Car_Image_Perform2=bwareaopen(Car_Image_Perform,2000);则鯤愜韋瘓賈晖园栋泷。这样,Car_Image_Perform中小于2000的对象都被删除了,小对象被删除后的图像如图图6 移除小对象后效果3.6车牌区域的边界值计算在将原始图像进行二值化,然后轮廓平滑处理后,图像的每个点为两个离散值中的一个,这两个值代表开(1)与关(0),即只有黑与白的特殊灰度图像,并且整个图像只有两个域(如果有多个域需改变参数后重新进行一此剔除干扰对象处理),全1的域即为车牌区域,并且近似矩形,长宽比为4.5:1,也可以用这两个特性去检验提

    19、取的区域是否为车牌区域。胀鏝彈奥秘孫戶孪钇賻。经区域确定了,即可将车牌的四个边界值确定下来。这里采用水平与垂直双向投影法,水平坐标的确定,先定义一个的数组,其中为原始图像的宽度值,然后将二值图像垂直投影到轴。从直方图中基本可以看书水平方向上的两个分界线,为了便于处理,该课题将像素值临界值定量化,取值5个像素。从左向右寻找第一个1值像素大于5的坐标为水平方向左侧分界线,从优向左寻找到第一个1值像素量大于5的为右侧分界线,程序可以用for循环语句。鳃躋峽祷紉诵帮废掃減。Zero_Col=zeros(1,x);% for j=1:x for i=1:y if(Car_Image_Perform(i,

    20、j,1)=1) Zero_Col(1,j)=Zero_Col(1,j)+1;% end endend Col_Left=1;while(Zero_Col(1,Col_Left)5)&(Col_Leftx)% Col_Left=Col_Left+1;稟虛嬪赈维哜妝扩踴粜。endCol_Right=x;while(Zero_Col(1,Col_Right)Col_Left)陽簍埡鲑罷規呜旧岿錟。 Col_Right=Col_Right-1;end垂直方向的分界线可用同样的方法实现。分界线计算得后,即可从原图像中剪切出只包含车牌的区域图像。剪切得到的图像如下。图8为二值图切割的车牌区域,图9为RGB

    21、图像切割出来的图像如下:沩氣嘮戇苌鑿鑿槠谔應。图7 车牌区域二值图裁减图8 原图中的车牌区域图像3.7字符切割3.7.1字符切割前的图像去噪处理由于图像车牌号区域提取后获得的是从原始图像中剪切的,是RGB图像,分割同样采取投影法,故同样需要先将RGB图像转换成灰度值,再将灰度图转化成二进制图,转化的方法就是限定一个阀值,如果大于阀值则为1,小于阀值为0,阀值采用全局阀值,全局阀值是指整幅图像都采用相同的阀值T处理,适用于背景和前景有明显对比的图像。虽然图像间受背景,光照等影响存在较大的差异,但计算简单,程序运算效率高。在Matlab实现法师如下钡嵐縣緱虜荣产涛團蔺。T=round(Licens

    22、e_Image_Gray_max-(License_Image_Gray_max-License_Image_Gray_min)/3); 懨俠劑鈍触乐鹇烬觶騮。同时采集大的图像噪点依然存在,因此可以通过处理图像的低频部分来锐化图像。这里采用均值滤波算法,均值滤波也称为线性滤波,其采用的主要方法为邻域平均法。线性滤波的基本原理是用均值代替原图像中的各个像素值,即对待处理的当前像素点,选择一个模板,该模板由其近邻的若干像素组成(以目标象素为中心的周围8个象素,构成一个滤波模板,即去掉目标象素本身),求模板中所有像素的均值,再把该均值赋予当前像素点,作为处理后图像在该点上的灰度,即,m为该模板中包含

    23、当前像素在内的像素总个数(即8个)。可以对比滤波前跟滤波后的图像,如图10和图11所示,很明显,不但噪声去除了,而且图像得到了锐化。謾饱兗争詣繚鮐癞别瀘。图9 车牌区域图像滤波前效果图10车牌区域图像滤波后效果3.7.2字符切割前的图像膨胀和腐蚀处理腐蚀已经在在上文介绍,膨胀刚好与腐蚀相反,运算规则是输出图像的像素值是输入图像邻域中的最大值,在一个二值图像中,只要一个像素值为1,则相应的输出像素值为1。呙铉們欤谦鸪饺竞荡赚。根据经验值,车牌图像中,字符面积与车牌面积之比在(0.235,0.365)之间,因此计算字符面积与车牌面积比值,如果大于0.365则对图像进行腐蚀,如果小于0.235则对图

    24、像进行膨胀,程序实现如下莹谐龌蕲賞组靄绉嚴减。clear Se; Se=eye(2);m,n=size(License_Image_Gray_2);if bwarea(License_Image_Gray_2)/m/n=0.365 License_Image_Gray_2=imerode(License_Image_Gray_2,Se);麸肃鹏镟轿騍镣缚縟糶。elseif bwarea(License_Image_Gray_2)/m/n=0.235 License_Image_Gray_2=imdilate(License_Image_Gray_2,Se);納畴鳗吶鄖禎銣腻鰲锬。end在这里结

    25、构元素Se使用一个二维单位矩阵。对于此对象,系统给予膨胀处理,效果图如图12图11车牌区域图像腐蚀、膨胀后效果3.7.3字符切割2007 年颁布的我国车牌规范(普通中小型汽车)规定车牌总长440mm,牌照中的7 个字符的实际总长为409mm 左右,宽140mm,每个字符45mm 宽,90mm 高,字符间距为10mm,其中第二个字符与第三个字符的间距较为特殊,为15.5mm,最后一个字符与第一个字符距边界25mm。这样,如果平均分配每个字符在牌照中占据的宽度,那么每个字符宽度为:width/7(width 为车牌图像的宽度)。但是,实际上,第二个第三个字符之间存在一个黑点,牌照左右两边与图像边缘

    26、也都有一定的宽度,所以每个字符的宽度应该小于width/7。考虑所有的情况,一般情况下最小的宽度为width/9。因此,字符的宽度可以从width/9 到width/7 之间渐进的变化得到,程序流程图如图13。風撵鲔貓铁频钙蓟纠庙。切割线同样采用投影法Wide=0;while sum(Image_Crop(:,Wide+1)=0 & Wide=n-2 Wide=Wide+1;End切割的字符时候符合比例要求采用if(Level1WideLevel2)&(R_C_Ratio_1(n1/m1)R_C_Ratio_2) Image_Crop(:,1:Wide)=0; 灭嗳骇諗鋅猎輛觏馊藹。if su

    27、m(sum(Image_Crop)=0 Image_Crop=Image_Trim(Image_Crop); 铹鸝饷飾镡閌赀诨癱骝。else Word=;Flag=1; endelse其中Level1和Level2是字符宽度的上下限,R_C_Ratio_1和R_C_Ratio_2是单个字符的宽高比值的上下限。攙閿频嵘陣澇諗谴隴泸。车牌二值图像趕輾雏纨颗锊讨跃满賺。经过切割,切割的字符图像如下。图13 经切割的七个字符3.8字符识别3.8.1字符识别方法选择目前字符识别的方案有使用神经网络和模板匹配法进行比对。人工神经网络是模拟人脑思维功能和组织建立起来的数学模型,虽然现在神经网络正在迅速发展,

    28、但总体来说应用还是相对复杂的。模板匹配法虽然识别率低,但实现简单,计算量小,只有矩阵的加减与统计,而且车牌字符是有阿拉伯数字,英文大写字母,还有部分汉字,虽有字库量不大,字符较规整时对字符图像的缺损、污迹干扰适应力强且识别率相当高,因此本课题使用这种方法。对于模板匹配,首先建立标准模板库,库中字符使用统一的尺寸,这里使用 。夹覡闾辁駁档驀迁锬減。3.8.2字符归一化由于图像采集时图像的像素值不一样,经切割出来的字符的大小也不会不一样,所以在进行匹配前必须先进行字符图像归一化。使图像大小跟模板图像大小一致,Matlab提供一个改变图像大小的函数imresize(I,Size,Model),Mod

    29、el是插值运算方法,这里选用nearest最近邻插值法,经归一化后的图像如下。视絀镘鸸鲚鐘脑钧欖粝。图14 经归一化后的七个字符3.8.3字符匹配识别字符识别步骤如下,后5个字符与模板中的字母与数字模板进行匹配偽澀锟攢鴛擋緬铹鈞錠。图15 字符匹配流程匹配方法采用将目标图像与模板图像逐点做差,得到第三幅图像,程序实现如下:for ii=1:40 or jj=1:20 Word_Image_Diff(ii,jj)=Word_Image(ii,jj)-Word_Image_Code(ii,jj);緦徑铫膾龋轿级镗挢廟。 endend最后计算第三幅二进制图像中像素值为1的个数,数值最小的即为匹配出来

    30、的结果,经对比可得相似度最高的数字。騅憑钶銘侥张礫阵轸蔼。图16 字符相似度比较有图16的,字符1在Lib_Code_No=39处取得最大相似度,查字库Lib_Code_No=39的字符为“渝”,则可以确定该字符为“渝”。同理可得出其他6个字符。疠骐錾农剎貯狱颢幗騮。4.课设小结做完这次车牌识别课程设计后,我感觉它的工作量的确很大,差不多花费了我数周的时间一遍遍地改参数、看图像。不过现在看来之前投入的精力是完全值得的,车牌识别课程设计对我的帮助主要有以下几点。镞锊过润启婭澗骆讕瀘。第一,巩固了数字图像处理课上所学的知识,比如滤波、膨胀、腐蚀、边缘提取等等。为了完成这次的课程设计,我在网上看了看

    31、了冈萨雷斯的数字图像处理(MATLAB版)。这本书内容丰富,自成一体,里面的许多内容与教材形成了互补。特别是形态学图像处理那一章有许多详细的例子,浅显易懂,不少课上没有完全理解的内容通过看这本书得到了深入的体会。榿贰轲誊壟该槛鲻垲赛。第二,通过这次课程设计我学会了使用Matlab这种常用的工具软件,之前我会用C语言,但是只是学会一点点,也学会使用matlab,但也是会一点点,但是这次深入接触后我感觉到Matlab的确是一款强大易学的数学分析软件,操作起来虽然比较难上手。但是在这次课设以后,我了解蛮多的函数功能及运用的。邁茑赚陉宾呗擷鹪讼凑。第三,为了完成车牌识别系统,我从网上找了不少源代码进行比较,这也锻炼了我读程序的能力。因为网上的代码实现方法众多,而且良莠不齐,评价起来很难。有些方法只能识别一幅特定的图像,有些甚至什么都识别不了。于是我就将不同模块分别测试,并加入我自己的思想,最后综合出一个比较理想的系统。调试的过程非常麻烦,因为有的参数只能对某一幅图像有用,对其它图像根本识别没法识别,所以为了使尽量多的图像能被


    注意事项

    本文(基于Matlab车牌识别课程设计论文.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开