matlb车牌识别.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
matlb车牌识别

《专业实践》 实践项目四 仿真工具在图像处理中的应用实践 班级: 学号: 姓名: 成绩: MATLAB在图像处理中的应用实践 实践目的 车牌是一辆汽车独一无二的信息,因此,对车辆牌照的识别技术可以作为 辨识一辆车最为有效的方法。随着ITS(智能交通系统)的高速发展,对车牌识别技术的研究也随之发展。从根本上讲,牌照识别应用了先进的图像处理,模式识别,人工智能技术来获取,处理,解释,记录拍照的图像。目前, 汽车牌照的自动识别技术已经得到了广泛应用。 汽车牌照自动识别整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,其中字符识别过程主要由以下3个部分组成:①正确地分割文字图像区域;②正确的分离单个文字;③正确识别单个字符。用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。 实践原理 车牌图像通常是在各种复杂的背景、环境条件下采集得到,图像质量难以保证,因此在进行车牌定位之前,通常要进行图像的预处理工作。图像预处理主要是对系统获取的原始图像基本特征的信息进行相应的、有针对性的处理,以滤去干扰、噪声,作几何校正、色彩校正,以便于计算机的分析计算,一般包括滤波、图像增强、图像二值化、形态学运算、边缘检测等。 图2 车牌图像预处理流程图 实践内容 车牌预处理(灰度化、去噪、灰度变换、边缘检测、 形态学处理) 由于照片拍摄的好坏有很多外界因素决定,由于光照强度的影响,晴天拍摄的照片与阴天拍摄的照片质量肯定不一样,白天和晚上更是不同;由于每部车的车速的不一致,慢速行驶的车辆会比快速行驶的车辆拍摄的照片质量好一些,而且车速过快,会使照片的字迹模糊,这肯定会影响字符的识别。故要对拍摄的照片进行灰度化、二值化、滤波等预处理。传统的设计方法为:利用静止的汽车牌照图片,利用C 语言或C++语言来对图像进行处理,编程很复杂,维护难度大。而MATLAB 语言对处理图像而言非常方便,可直接调用已经编好的函数,如可直接调用现成的函数进行复杂的傅里叶变换、拉普拉斯变换、二值化处理、数字滤波等操作。 车牌定位 字符分割 字符识别 程序如下: I=imread(C:\Documents and Settings\Administrator\桌面\yu.jpg); figure(1),imshow(I);title(原图); I1=rgb2gray(I); figure(2),subplot(1,2,1),imshow(I1);title(灰度图); figure(2),subplot(1,2,2),imhist(I1);title(灰度图直方图); I2=edge(I1,roberts,0.08,both); figure(3),imshow(I2);title(robert算子边缘检测) se=[1;1;1]; I3=imerode(I2,se); figure(4),imshow(I3);title(腐蚀后图像); se=strel(rectangle,[40,40]); I4=imclose(I3,se); figure(5),imshow(I4);title(平滑图像的轮廓); I5=bwareaopen(I4,2000); figure(6),imshow(I5);title(从对象中移除小对象); [y,x,z]=size(I5); myI=double(I5); 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); PY1=MaxY; while((Blue_y(PY1,1)=120)(PY11)) PY1=PY1-1; end PY2=MaxY; while((Blue_y(PY2,1)=40)(PY2y)) PY2=PY2+1; end IY=I(PY1:PY2,:,:); 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)3)(PX2PX1)) PX2=PX2-1; end PX1=PX1-2; PX2=PX2+2; dw

文档评论(0)

skvdnd51 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档