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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

车牌图像定位与识别.docx

1、车牌图像定位与识别专业综合实验报告-数字图像处理专业:电子信息工程班级:学号:指导教师:2014年7月18日 车牌图像定位与识别一、设计目的利用matlab实现车牌识别系统,熟悉matlab应用软件的基础知识,利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,巩固理论课上知识的同时,加强实践能力的提高,理论联系实践,提高自身的动手能力。同时不断的调试程序也提高了自己独立编程水平,并在实践中不断完善理论基础,有助于自身综合能力的提高。二、设计容和要求 车牌识别系统应包含图像获取、图像处理、图像分割、字符识别、数据库管理等几个部分,能够完成复杂背景下汽车牌照的定位分割以及牌照字符的自

2、动识别。这里,只要求对给定的彩色车牌图像变换成灰度图像,用阈值化技术进行字符与背景的分离,再提取牌照图像。三、设计步骤1打开计算机,启动MATLAB程序;2调入给定的车牌图像,并按要求进行图像处理;3记录和整理设计报告四、设计所需设备及软件计算机一台;移动式存储器;MATLAB软件。五、设计过程车辆牌照识别整个系统主要是由车牌定位和字符分割识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位及分割模块;字符识别可以分为字符分割和单个字符识别两个模块。(一)对图像进行图像转换、图像增强和边缘检测等1.载入车牌图像:2.将彩图转换为灰度图并绘制直方图:3.用roberts算子

3、进行边缘检测:图像中车辆牌照是具有比较显著特征的一块图象区域,这此特征表现在:近似水平的矩形区域;其中字符串都是按水平方向排列的;在整体图象中的位置较为固定。正是由于牌照图象的这些特点,再经过适当的图象变换,它在整幅中可以明显地呈现出其边缘。边缘提取是较经典的算法,此处边缘的提取采用的是Roberts算子。4.图像实施腐蚀操作:5.平滑图像:对于受噪声干扰严重的图象,由于噪声点多在频域中映射为高频分量,因此可以在通过低通滤波器来滤除噪声,但实际中为了简化算法也可以直接在空域中用求邻域平均值的方法来削弱噪声的影响,这种方法称为图象平滑处理。6.删除二值图像的小对象(2)车牌定位:从预处理后的汽车

4、图像中分割出车牌图像。即在一幅车辆图像中找到车牌所在的位置。(3)字符分割与识别1.车牌的进一步处理对分割出的彩色车牌图像进行灰度转换、二值化、均值滤波、腐蚀膨胀以及字符分割以从车牌图像中分离出组成车牌的单个字符图像,对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌。2.字符分割在汽车牌照自动识别过程中,字符分割有承前启后的作用。它在前期牌照定位的基础上进行字符的分割,然后再利用分割的结果进行字符识别。字符识别的算法很多,因为车牌字符间间隔较大,不会出现字符粘连情况,所以此处采用的方法为寻找连续有文字的块,若长度大于某阈值,则认为该块有两

5、个字符组成,需要分割。在此只进行了归一化处理,然后进行后期处理。六总结根据车牌特点,一般采用的车牌定位算法有:1.边缘检测定位算法;2.利用哈夫变换进行车牌定位;3.色彩分割提取车牌等。这里我采用的是边缘检测的方法实现定位的。字符分割的方法也有多种:1. 基于聚类分析的字符分割;2. 投影分割的方法;3.基于模板匹配的字符分割等。最常用的是投影分割,主要是针对在车牌定位,图像预处理后比较规则的车牌图像。优点是程序逻辑设计简单,循环执行功能单一,便于设计和操作,程序执行时间短。对现实事物的设计不仅是对前面所学知识的一种检验,而且也是对自己能力的一种提高。通过这次设计使我明白了自己原来知识还比较欠

6、缺。这个设计让我学到了很多东西,涉及到方方面面的知识,在这整个过程中我们查阅了大量的资料,得到了老师和同学的帮助,我在此对他们表示意。七源代码:(1)主程序:I=imread(car.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.18,both);figure(3),imshow(I2);title(rober

7、ts边缘检测图);se=1;1;1;I3=imerode(I2,se);figure(4),imshow(I3);title(腐蚀后图);se=strel(rectangle,25,25);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);ticBlue_y=zeros(y,1);for i=1:y for j=1:x if(myI(i,j,1)=1) Blue_y(i,

8、1)=Blue_y(i,1)+1; end endendtemp MaxY=max(Blue_y);PY1=MaxY;while(Blue_y(PY1,1)=5)&(PY11) PY1=PY1-1;endPY2=MaxY;while(Blue_y(PY2,1)=5)&(PY2y) PY2=PY2+1;endIY=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 endendPX1=1;while(Blue_x(1,PX1)3)&(PX1

9、x) PX1=PX1+1;endPX2=x;while(Blue_x(1,PX2)PX1) PX2=PX2-1;endPX1=PX1-1;PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc;figure(7),subplot(1,2,1),imshow(IY),title(行方向车牌区域);figure(7),subplot(1,2,2),imshow(dw),title(定位后车牌区域);imwrite(dw,dw.jpg);a=imread(dw.jpg);b=rgb2gray(a);imwrite(b,gray licence plate.jpg);fig

10、ure(8);subplot(3,2,1),imshow(b),title(车牌灰度图像);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);imwrite(d,binary licence plate.jpg);subplot(3,2,2),imshow(d),title(before filtering binary licence plate);h=fspecial(average,3);d=im2bw(round(filte

11、r2(h,d);imwrite(d,after average licence plate.jpg);subplot(3,2,3),imshow(d),title(after average licence plate);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,expansion or corrosion the licence plate.jpg);subplot(3,2,4),imshow(d)

12、,title(expansion or corrosion the licence plate);d=qiege(d);m,n=size(d);subplot(3,2,5),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=round(n/6.5) val,num=min(sum(d(:,k1+5:k2-5); d(:,k1+num+5)=0; endendd=qiege(d);y1=10;y2=0.25;flag=0;word1=;while fla

13、g=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; end d(:,1:wide)=0;d=qiege(d); endendword2,d=getword(d);word3,d=getword(d);word4,d=getword(d);word5,d=getword(d);word6,d=getword(d);word7,d=getword(d);figure(9);subplot(2,7,1),imshow(word1),title(1);

14、subplot(2,7,2),imshow(word2),title(2);subplot(2,7,3),imshow(word3),title(3);subplot(2,7,4),imshow(word4),title(4);subplot(2,7,5),imshow(word5),title(5);subplot(2,7,6),imshow(word6),title(6);subplot(2,7,7),imshow(word7),title(7);m,n=size(word1);word1=imresize(word1,40 20);word2=imresize(word2,40 20);

15、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(2,7,8),imshow(word1),title(1);subplot(2,7,9),imshow(word2),title(2);subplot(2,7,10),imshow(word3),title(3);subplot(2,7,11),imshow(word4),title(4);subplo

16、t(2,7,12),imshow(word5),title(5);subplot(2,7,13),imshow(word6),title(6);subplot(2,7,14),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);(2)子程序:(getword子程序) function word,result=g

17、etword(d) word=;flag=0;y1=8;y2=0.5; while flag=0 m,n=size(d); wide=0; while sum(d(:,wide+1)=0 & wide=n-2 wide=wide+1; end temp=qiege(imcrop(d,1 1 wide m); m1,n1=size(temp); if widey2 d(:,1:wide)=0; if sum(sum(d)=0 d=qiege(d); % 切割出最小围 else word=;flag=1; end else word=qiege(imcrop(d,1 1 wide m); d(:,

18、1:wide)=0; if sum(sum(d)=0; d=qiege(d);flag=1; else d=; end end end result=d;子程序:(qiege子程序)function e=qiege(d)m,n=size(d);top=1;bottom=m;left=1;right=n; while sum(d(top,:)=0 & top1 bottom=bottom-1;endwhile sum(d(:,left)=0 & left=1right=right-1;enddd=right-left;hh=bottom-top;e=imcrop(d,left top dd hh);

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

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