ImageVerifierCode 换一换
你正在下载:

春.docx

[预览]
格式:DOCX , 页数:17 ,大小:385KB ,
资源ID:5077030      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5077030.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(春.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

春.docx

1、春 长 沙 学 院课程设计说明书题目车牌提取系统设计系(部)电子与通信工程系专业(班级)11电子2班姓名王宇学号2011012407指导教师刘莉、谭志光、周远、孙利平起止日期2014.6.9-2014.6.13长沙学院课程设计鉴定表姓名王宇学号2011012407专业电子信息工程班级电子二班设计题目车牌提取系统设计指导教师刘莉指导教师意见:评定等级: 教师签名: 日期: 答辩小组意见:评定等级:答辩小组长签名:日期:教研室意见:教研室主任签名: 日期: 系(部)意见:系主任签名:日期:说明课程设计成绩分“优秀”、“良好”、“中等”、“及格”、“不及格”五类;目录摘要 1关键词 11 MATLA

2、B简介 12 车牌提取系统的基本原理 23 车牌提取系统的仿真 34车牌提取系统的分析 55车牌提取系统的界面设计 66 心得体会 10参考文献 11车牌提取系统的仿真设计摘要近几年,车牌识别系统作为智能交通的一个重要方向越来越受到重视。车牌识别系统可以应用于停车场管理系统、智能交通管理系统、小区车辆管理系统等各个领域,对交通管理及治安管理有着十分重要的作用。虽然目前已有一些车牌识别系统相关产品出现,但是对其算法的研究发展从没有停止。 本文首先对车牌识别系统的现有技术进行了更加深入的研究,在研究的基础上开发出一个基于MATLAB 的车牌号识别系统。该设计方案仅进行Matlab软件的开发,图像采

3、用已经采集的车牌号清楚显示的汽车图片,软件包括车牌定位、车牌字符分割及车牌字符识别三个模块。车牌定位模块中使用了基于小波变换的车牌边缘提取的算法,该算法对于各种底色的车牌具有良好的适应性;车牌的二值化采用了改进的Otus 算法,重新划分了其两维直方图的区域;字符切割采用波谷检测法,以波谷为切割线,将车牌图片切割成七个字符图片;字符识别采用模块匹配法,将要识别的字符与预先构造好的字符模板进行比较,根据相似度确定字符。根据上述算法搭建了一个测试平台,通过测试平台,对大量照片进行车牌识别,测试系统的性能。测试结果表明,本课题设计的车牌识别系统可有效地实现车牌识别,为今后的产品化奠了很好的技术基础。关

4、键词:车牌识别,车牌定位,字符分割,字符识别 1、 MATLAB简介MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国The MathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C+和FORTRAN)编写的程序。 尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和

5、分析等。另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。 MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATL

6、AB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C+,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。 MATLAB应用:MATLAB 产品族可以用来进行以下各种工作: 数值分析 数值和符号计算 工程与科学绘图 控制系统的设计与仿真 数字图像处理 数字信号处理 通讯系统设计与仿真 财务与金融工程 MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和

7、分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。 2、车牌提取系统的基本原理车辆牌照识别系统的基本工作原理为:将摄像头拍摄到的包含车辆牌照的图像通过视频卡输入到计算机中进行预处理,再由检索模块对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。 图 车牌识别系统基本结构框图一:原始图像:由停车场固定彩色摄像机、数码相机或其他扫描装置拍摄到的图像。二:图像预处理:对动态采集到的图像进

8、行滤波,边界增强等处理以克服图像处理。三:车牌位置提取:通过运算得到图像的边缘,再计算边缘图像的投影面积,寻找谷峰点以大概确定车 牌的位置,再计算连通域的宽高比,剔除不在阈值范围内的连通域,最后便得到了车牌区域。四:字符分割:利用投影检测的字符定位分割方法得到单个的字符。 五:字符识别:利用模板匹配的方法与数据库中的字符进行匹配从而确认出字符。六:输出结果:得到最后的汽车牌照,包括汉字、字母和数字。(1)牌照定位: 自然环境下,由于汽车图像背景复杂、光照不均匀等原因,如何在自然背景中准确地确定牌照区域是整个识别过程的关键。一般采用的方案是首先对采集到的视频图像进行大范围相关搜索,找到符合汽车牌

9、照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。通过以上步骤,牌照一般能够被定位。(2)牌照字符分割 : 在完成牌照区域的定位后,还需要将牌照区域分割成单个字符,然后进行字符识别,最后输出结果。字符分割一般采用垂直投影法。垂直投影法的原理是由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一些其他条件。所以利用垂直投影法对复杂环境下的汽车图像的字符分割有较好的效果。(3)牌照字符识别: 字符识别方法目前主要得算法有两种即基于模板匹配算法和

10、基于人工神经网络算法。基于模板匹配算法首先将分割后的字符二值化,并将其尺寸大小缩放为字符数据库中模板的大小,然后与所有的模板进行匹配,最后选最佳匹配作为结果。基于人工神经元网络的算法有两种:一种是先对待识别字符进行特征提取,然后用所获得特征来训练神经网络分配器;另一种方法是直接把待处理图像输入网络,由网络自动实现特征提取直至识别出结果。实际应用中,牌照识别系统的识别率与牌照质量和拍摄质量密切相关。牌照质量会受到各种因素的影响,如生锈、污损、油漆剥落、字体褪色、牌照被遮挡、牌照倾斜、高亮反光、多牌照、假牌照等等;实际拍摄过程也会受到环境亮度、拍摄亮度、车辆速度等等因素的影响。这些影响因素不同程度

11、上降低了牌照识别的识别率,也正是牌照识别系统的困难和挑战所在。为了提高识别率,除了不断的完善识别算法,还应该想办法克服各种光照条件,使采集到的图像最利于识别。3 车牌提取系统的仿真源程序:I=imread(car2.jpg);I1=rgb2gray(I);I2=edge(I1,robert,0.15,both);se=1;1;1;I3=imerode(I2,se);se=strel(rectangle,25,25);I4=imclose(I3,se);I5=bwareaopen(I4,2000);y,x,z=size(I5);myI=double(I5);%Y方向车牌区域确定tic Blue_

12、y=zeros(y,1);% y=zeros(450,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); PY1=MaxY; while (Blue_y(PY1,1)=5)&(PY11) PY1=PY1-1; end PY2=MaxY; while (Blue_y(PY2,1)=5)&(PY2y) PY2=PY2+1; end% Blue_y(272,1)=3 Blue_y(271,1)=5 IY=I(PY1:PY2,:,:);figure(

13、7),subplot(1,2,1),imshow(IY),title(行方向合理区域);% X方向车牌区域确定 % Blue_x=zeros(1,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)&(PX1x) PX1=PX1+1; end PX2=x; while (Blue_x(1,PX2)PX1) PX2=PX2-1; endPX1=PX1-1;PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:

14、);figure(7),subplot(1,2,2),imshow(dw),title(定位剪切后的彩色车牌图像)处理结果:4、车牌提取系统的分析I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000的部分当改变灰度值2000为20时,结果为%Y方向车牌区域确定tic Blue_y=zeros(y,1);% y=zeros(450,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); PY1=MaxY; while (Blu

15、e_y(PY1,1)=5)&(PY11) PY1=PY1-1; end PY2=MaxY; while (Blue_y(PY2,1)=5)&(PY2=5)&(PY11)和(Blue_y(PY1,1)=5)&(PY11)的范围,即得到结果为:5、车牌提取系统的界面设计整体界面:运行界面:源程序:1、车牌定位I=imread(car2.jpg);I1=rgb2gray(I);I2=edge(I1,robert,0.15,both);se=1;1;1;I3=imerode(I2,se);se=strel(rectangle,25,25);I4=imclose(I3,se);I5=bwareaopen

16、(I4,2000);y,x,z=size(I5);myI=double(I5);%Y方向车牌区域确定tic Blue_y=zeros(y,1);% y=zeros(450,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); PY1=MaxY; while (Blue_y(PY1,1)=5)&(PY11) PY1=PY1-1; end PY2=MaxY; while (Blue_y(PY2,1)=5)&(PY2y) PY2=PY2+1; end

17、% Blue_y(272,1)=3 Blue_y(271,1)=5 IY=I(PY1:PY2,:,:);figure(7),subplot(1,2,1),imshow(IY),title(行方向合理区域);% X方向车牌区域确定 % Blue_x=zeros(1,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)&(PX1x) PX1=PX1+1; end PX2=x; while (Blue_x(1,PX2)PX1)

18、 PX2=PX2-1; end%对车牌区域的校正PX1=PX1-1;PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);figure(7),subplot(1,2,2),imshow(dw),title(定位剪切后的彩色车牌图像)2、字符分割a=imread(dingwei.jpg);b=rgb2gray(a);g_max=double(max(max(b);g_min=double(min(min(b);T=round(g_max-(g_max-g_min)/3); m,n=size(b);d=(double(b)=T); % 滤波h=fspecial(average,3

19、);d=im2bw(round(filter2(h,d);% 膨胀或腐蚀se=eye(2); m,n=size(d);if bwarea(d)/m/n=0.365 d=imerode(d,se);elseif bwarea(d)/m/n=0.235 d=imdilate(d,se);endimwrite(d,5.膨胀或腐蚀处理后.jpg);figure(8),subplot(3,2,5),imshow(d),title(5.膨胀或腐蚀处理后)d=qiege(d); m,n=size(d);k1=1;k2=1;s=sum(d);j=1;while j=n while s(j)=0 j=j+1;

20、end k1=j; while s(j)=0 & j=round(n/6.5) val,num=min(sum(d(:,k1+5:k2-5); d(:,k1+num+5)=0; % 分割 endend% 再切割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 widey2 flag=1;word1=temp; % WORD 1 end d(:,1:wide)=0;d=qiege

21、(d); endend% 分割出第二个字符word2,d=getword(d); % word2 65*34% 分割出第三个字符word3,d=getword(d);% 分割出第四个字符word4,d=getword(d);% 分割出第五个字符word5,d=getword(d);% 分割出第六个字符word6,d=getword(d);% 分割出第七个字符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(wor

22、d3),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*20word1=imresize(word1,40 20);word2=imresize(word2,40 20);word3=imresize(word3,40 20);word4=imresize(word4,

23、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

24、),imshow(word6),title(6);subplot(5,7,21),imshow(word7),title(7);3、字符识别dw=imread(dw.jpg)liccode=char(0:9 A:Z 苏豫陕鲁);SubBw2=zeros(40,20);l=1;for I=1:7 ii=int2str(I); t=imread(ii,.jpg); SegBw2=imresize(t,40 20,nearest); if l=1 kmin=37; kmax=40; elseif l=2 kmin=11; kmax=36; else l=3 kmin=1; kmax=10; end

25、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

26、(Error1); findc=find(Error1=MinError); Code(l*2-1)=liccode(findc(1)+kmin-1); Code(l*2)= ; l=l+1;endfigure(10),imshow(dw),title (车牌号码:, Code,Color,r);6 心得体会 参考文献:1 邱关源.电路原理(五版).北京:高等教育出版社,20062 曹丙霞.protel原理图设计.北京:电子工业出版社,20073 周开利,邓春晖.MATLAB基础及应用教程.北京:北京大学出版社,20074 张威.MATLAB6.0基础与编程与入门。西安:西安电子科技大学出版社,20075 张智星.MATLAB程序设计与应用。北京:清华大学出版社,2002

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1