




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科生毕业论文(设计)题 目: 基于数字图像处理的车牌识别设计 姓 名: 学 院: 数理与信息工程学院 专 业: 电子信息工程 班 级: 111 学 号: 1665110130 指导教师: 职称: 教授 2014 年 12 月 24 日安徽科技学院教务处制目录摘要3关键词31、设计目的32、设计原理:33、设计步骤:34、实行方案44.1. 总体实行方案:44.2. 各模块的实现:44.2.1输入待处理的原始图像:44.2.2图像的灰度化并绘制直方图:54.2.3 边缘检测64.2.4图像的腐蚀操作:74.2.5平滑图像84.2.6除去二值图像的小对象84.3车牌定位94.4字符的分割与识别114.4.1.车牌的再处理114.4.2字符分割134.5车牌识别:175、总结:206、致谢207、参考文献:21基于数字图像处理的车牌识别设计电子信息工程专业学生 周金鑫指导教师 刘纯利摘要:车牌识别在人类社会交通系统中担当重要角色,一个设计优良的车牌识别系统会给人们生活带来极大的方便,本文通过运用matlab和数字图像处理的一些知识简单通过图像预处理,车牌定位,字符分割,采用模板匹配法实现车牌字符的识别。关键词 : 图像预处理 边缘处理 字符分割 字符识别 1、设计目的车牌识别系统主要是为了辨别所拍图片中的车牌部分,以此识别车辆。通过车牌识别系统的设计,来实现经过我校西大门的车辆的识别。 2、设计原理:设计的原理主要如下图所示:照明设备摄像设备触发设备 车牌识别处理单元图像采集设备3、设计步骤:流程图如下:图象输入 图像预处理车牌定位字符分割字符识别 4、实行方案4.1. 总体实行方案:用摄像机获取自然环境下的汽车彩色图像,将彩色图像用matlab软件处理成灰度图像并绘制直方图,然后进行边缘检测图像的腐蚀,平滑图像以及去除二值图像的小对象等操作,再进行车牌的定位和字符分割与识别最终达到识别车牌照的目的。4.2. 各模块的实现:4.2.1输入待处理的原始图像:I=imread(car.jpg);imshow(I);%显示车牌的原始图片,结果如下: 图4.2.1原始图像picture14.2.2图像的灰度化并绘制直方图: 彩色图像的存储器所需的成本高,且减缓系统的速度执行,所以,在图像识别处理彩色图像一般都转换成灰度图像,以加快图像信息的处理速度。从彩色图像到灰度图像的转换叫做灰度处理。灰度直方图的横坐标代表图片的像素数,从左到右由暗到亮,灰度直方图的纵轴就表示其所占有图片的面积,峰值越低就意味着该明暗值的像素数量越少,从图4.2.2可以看出峰值最高的即为车牌区域。I1=rgb2gray(I);%灰度处理subplot(1,2,1),imshow(I1);title(gray image);subplot(1,2,2),imhist(I1);title(灰度图直方图);%绘制灰度图和直方图显示结果图像如下:图4.2.2灰度化并绘制直方图picture24.2.3 边缘检测边缘是一定存在在两个拥有不一样灰度值的相邻的区域之间的,是灰度值不连续的一种表现,也是分割图象、纹理和形状特征提取等图像分析的基础。本文用Roberts算子来实现边缘检测,他是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑,当然还需要后续的腐蚀,平滑图像以及去除二值图像的小对象操作来提高精度。由于阈值越小检测的边缘越丰富,结合选取的灰度图选择阈值为0.16较为合适。用roberts算子实行边缘检测:I2=edge(I1,roberts,0.16,both); imshow(I2);title(roberts operator edge detection image);结果如下:图4.2.3 边缘检测picture34.2.4图像的腐蚀操作: 腐蚀操作就是通过不断的删除图片上的像素,将图片缩小,以此来达到去除小点状图形的效果。se=1;1;1;I3=imerode(I2,se);%图像腐蚀操作imshow(I3);title(corrosion image);图4.2.4图像腐蚀操作picture44.2.5平滑图像 图像平滑是去掉图像中的高频信息,使图像变的模糊,噪声一般都是高频信息,平滑的过程也就意味着除去图片噪声的过程。se=strel(rectangle,16,16);%建立正方形结构元素I4=imclose(I3,se);% 图像聚类和填充imshow(I4);title(smothing image);图2.5平滑图像picture54.2.6除去二值图像的小对象 除去二值图像的小对象就为了去掉面积较小无关的白色区域,将车牌所在的大面积白色区域凸显出来。 I5=bwareaopen(I4,1900);% 除去聚团灰度值在1900以下的部分imshow(I5);title(remove the small objects); %滤波后图像显示结果如下 : 图4.2.6除去二值图像的小对象picture64.3车牌定位自然环境下,汽车图像背景十分复杂,受光照不均匀、污渍等影响,所以在自然背景下准确的将车牌区域确定下来是整个识别过程的关键,所以先要对原图像进行大范围横向(X),纵向(Y)像素点相关搜索,找到符合汽车牌照的候选区,然后对候选区做进一步的分析,判断,最终确定一个最佳的区域作为牌照区域。代码显示如下:y,x,z=size(I5);%返回I5各维的尺寸,存储在x,y,z中myI=double(I5);%将I5转换成双精度tic %tic计时开始,toc计时结束 Blue_y=zeros(y,1);%产生一个y*1的零阵 for i=1:y for j=1:x if(myI(i,j,1)=1) %若myI的图像中坐标(i,j)的点值为1,则表示蓝色背景 %则Blue_y(i,1)的值加1 Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计 end end end temp MaxY=max(Blue_y);%Y方向车牌区域确定 % MaxY是yellow_y元素中最大值temp的索引 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 IY=I(PY1:PY2,:,:); %行方向车牌区域确定 % X方向 % Blue_x=zeros(1,x);%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-1;%车牌区域校正 PX2=PX2+1; dw=I(PY1:PY2-8,PX1:PX2,:); t=toc; subplot(1,2,1),imshow(IY),title(Line direction areas);%车牌行方向区域的确定subplot(1,2,2),imshow(dw),title(positioning color images);%车牌已经定位后的区域显示如下: 图4.3.1车牌的定位picture74.4字符的分割与识别4.4.1.车牌的再处理划分彩色图像需经过灰度变换,二值化,均值滤波,腐蚀和膨胀到一个字符,并对分割字符进二值化、归一化等图像预处理使车牌图像的车牌号字符分割构成隔离,然后分析识别已经分割字符识的图像并用文本的车牌号的形式呈现出来。代码显示如下:imwrite(dw,dw.jpg);%把彩色车牌写入dw文件里a=imread(dw.jpg);%读取车牌文件数据b=rgb2gray(a);%把车牌图像变换为灰度图imwrite(b,gray licence plate.jpg);%把灰度图像写入文件里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); % T 表示二值化的阈值m,n=size(b);d=(double(b)=T); % d:二值图像imwrite(d,binary licence plate.jpg);subplot(3,2,2),imshow(d),title(before filtering binary licence plate)%均值滤波之前% 滤波h=fspecial(average,3);%模板的尺寸:3*3,average:均值滤波,建立滤波算子d=im2bw(round(filter2(h,d);%用指定的滤波器h然后对其均值滤波即进行dimwrite(d,after average licence plate.jpg);subplot(3,2,3),imshow(d),title(after average licence plate)% 操作某些图象% 膨胀或腐蚀% se=strel(square,3); %图片膨胀处理% line/diamond/ball.se=eye(2); % eye(n) returns the n-by-n identity matrix 单位矩阵m,n=size(d); if bwarea(d)/m/n=0.36 d=imerode(d,se);%假如大于0.36即图像进行腐蚀elseif bwarea(d)/m/n=0.23 d=imdilate(d,se);%假如小于即实现膨胀操作endimwrite(d,expansion or corrosion the licence plate.jpg);subplot(3,2,4),imshow(d),title(expansion or corrosion the licence plate);运行结果显示如下:图4.4.1字符分割与识别picture84.4.2字符分割字符分割就是把已经定位好的车牌区域上的字符分别提取出来,我们知道中国的车牌上字符之间是存在间隙的,就是利用这个间隙来实现我们对定位区域的车牌分割,通过搜索连续在一起的字符块,若长度高于某一阈值,则为两个字符组成,要分割,对分割好的字符再进行归一化的处理。%搜索连续在一起的字符块,若长度高于某一阈值,则为两个字符组成,要分割,对分割 %建立子函数qiege、getword,调用子程序,分割车牌字符并做归一化的处理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=n-1 j=j+1; end k2=j-1; if k2-k1=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 widey1 % 判断是左侧干扰 d(:,1:wide)=0; d=qiege(d); else temp=qiege(imcrop(d,1 1 wide m); m,n=size(temp); all=sum(sum(temp); two_thirds=sum(sum(temp(round(m/3):2*round(m/3),:); if two_thirds/ally2 flag=1;word1=temp; % WORD 1 end d(:,1:wide)=0;d=qiege(d); endend% 分割出第二个字符word2,d=getword(d);% 分割出第三个字符word3,d=getword(d);% 分割出第四个字符word4,d=getword(d);% 分割出第五个字符word5,d=getword(d);% 分割出第六个字符word6,d=getword(d);% 分割出第七个字符word7,d=getword(d); subplot(2,7,1),imshow(word1),title(1);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);% 取40*20为归一化大小,如下word1=imresize(word1,40 20);word2=imresize(word2,40 20);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);subplot(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);运行结果显示如下: 图4.4.2字符分割picture94.5车牌识别:在此采用相减的模板匹配法来判断字符和模板中哪一个字符最接近,再找到相似度最高的字符作为输出结果。通常车辆牌照的字符有7个,一般第一位是汉字,表示车辆所属的省份,而后的为字母和数字。车牌字符的识别较一般文字识别要简单些,主要是它的字符数是有限的,汉字一共约50多个,大写英文字母26个,数字10个。出于实验运算方便的考虑,本文仅建立了7个汉字26个字母与10个数字的模板。其他的模板算法与之相同。第一步取字符模板,第二步依次取待识别字符与模板进行匹配,第三步将选中的字符与模板字符相减,得到的零越多也即就越匹配。第四步每一幅相减后的图的零值的个数都要保存,并作为识别出来的结果。识别的流程图显示如下:识别字符相减后,值越小表示相似度越大,找到最小的一个也即为匹配的最好的创建自动识别代码表读取分割出来的字符将第一个字符与模板中的汉字模板进行匹配将第二个字符与模板中的字母模板进行匹配将后面五个字符与模板中的字母与数字模板进行匹配识别完成,输出此模板对应值源代码显示如下: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); SegBw2=double(SegBw2)20; if l=1 %第一位汉字的识别 kmin=37; kmax=43; elseif l=2 %第二位 AZ 字母的识别 kmin=11; kmax=36; else l=3 %第三位后面识别字母或数字 kmin=1; kmax=36; end for k2=kmin:kmax fname=strcat(字符模板,liccode(k2),.jpg); SamBw2 = imread(fname); SamBw2=double(SamBw2)1; for i=1:40 for j=1:20 SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j); end end % 2张图相减得到第3张图 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(Error1); findc=find(Error1=MinError); Code(l*2-1)=liccode(findc(1)+kmin-1); Code(l*2)= ; l=l+1;endpicture(10),imshow(dw),title (车牌号码:, Code,Color,b); 图4.5.1车牌识别picture105、总结:实验对车牌识别系统的识别主要依靠的工具是matlab软件编程,分别从图像预处理、车牌定位、字符分割以及字符识别等方面进行了系统的分析。从本设计用MATLAB编程运行结果可以得出,对于一张自然环境下牌照照片进过本设计采用的图像预处理、roberts算子进行边缘检测、删除二值图像的小对象、车牌识别等对车牌的定位都是非常有效的。6、致谢经过这段时间的不断努力我的毕业设计终于搞定了。当你踏踏实实完成毕业设计时你会发现他不仅可以检验前面所学知识,而且也可以提高对自己的自学能力。通过这次的毕业论文设计让我对matlab软件的认识和对数字图像处理的相关知识有了较深的理解,让我了解到知识的学习是一步一个脚印,学习不仅要靠之间的努力专研,还学要虚心求教,有什么不懂不会的不能钻牛角尖,多和同学和老师进行交流,在老师的悉心指导下我学起知识那是非常的迅速,有时问题理解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025外籍人员聘用合同简易版
- 跨境电商箱包配饰品牌2025年海外市场品牌风险管理研究
- 2025塑料废料供应合同范本
- 三年级体育上册 蹲距式跳远说课稿
- 2025关于房屋买卖合同格式
- 网络安全培训常州课件
- 中海巡逻岗考试题及答案
- 中国文史考试题目及答案
- 中兵学堂考试题库及答案
- 智慧工会考试题库及答案
- 2024年职工职业技能大赛数控铣工赛项理论考试题库-下(多选、判断题)
- 房地产行业市场调查报告
- DB11T 065-2022 电气防火检测技术规范
- 资金分析师职业鉴定考试复习题及答案
- 三级筑路工(高级)职业技能鉴定考试题库(含答案)
- 中职英语第三版第一册Unit1-Lesson1-课件
- 窗帘订购合同范本简单
- 人教版:生命生态安全六年级上册教案
- 抖音洗浴按摩足浴商家本地团购短视频直播运营策划方案【抖音本地生活运营】
- 深水井施工方案
- (幻灯片)世界各国国旗大全中文
评论
0/150
提交评论