期末课程报告:数字图像中车牌识别的matlab实现.docx

上传人:wux****ua 文档编号:7976977 上传时间:2020-03-26 格式:DOCX 页数:13 大小:572.67KB
返回 下载 相关 举报
期末课程报告:数字图像中车牌识别的matlab实现.docx_第1页
第1页 / 共13页
期末课程报告:数字图像中车牌识别的matlab实现.docx_第2页
第2页 / 共13页
期末课程报告:数字图像中车牌识别的matlab实现.docx_第3页
第3页 / 共13页
点击查看更多>>
资源描述
数字图像处理期末课程报告 题 目: 车牌识别的matlab实现 题目类型: 软件型 学 院 信息工程与自动化学院 专 业: 计算机科学与技术 年 级: XXXX 学 号: XXXXXXX 学生姓名: xxx 指导教师: xx 日 期: 2012-6-8 目录摘要:2关键词:2实验工具:2车辆牌照识别流程:2实验内容及步骤31.图像预处理:32.车牌定位车牌起始位置和终止位置53.图片二值化54.列方向像素点灰度值累计65.字符分割:76.建立字符模板数据库87.归一化训练9结果分析:13摘要:本次课程设计的目的是通过对基于MATLAB的字符识别的研究,以汽车牌照识别的设计为实例,详细介绍字符识别的相关原理。整个汽车牌照识别的过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。在研究的同时对其中出现的问题进行了具体分析,处理。寻找出对于具体的汽车牌照识别过程的最好的方法。关键词:MATLAB字符识别车牌识别神经网络图像处理实验工具:MATLAB 7.8(R2009a)。车辆牌照识别流程:基于 MATLAB图像处理的汽车牌照识别,主要包括车牌定位、字符车牌分割、和车牌字符识别三个关键环节。流程图如下:原始图像图像预处理车牌定位字符分割字符数据库字符识别其中,(1) 原始图像:由数码相机或其它扫描装置拍摄到的图像;(本实验图片由数码相机获得)(2) 图像预处理:对动态采集到的图像进行灰度处理、边缘检测、腐蚀、膨胀、滤波、等处理排除图像干扰;(3) 车牌定位:计算边缘图像的投影面积,寻找峰谷点,大致确定车牌位置,再计算此连通域内的宽高比,剔除不在域值范围内的连通域,最后得到的便为车牌区域;(4) 字符分割:利用投影检测的字符定位分割方法得到单个的字符;(5) 字符数据库:构造训练样本数据库,为第6步的字符识别建立字符模板数据库;(6) 字符识别:通过基于模板匹配的OCR算法或基于人工神经网络的OCR算法,通过特征对比或训练识别出相关的字符,得到最后的汽车牌照,包括英文字母和数字。实验内容及步骤1. 图像预处理:预处理源代码: I=imread(h:tukucar1.jpg);%读取图像 figure(); subplot(3,2,1),imshow(I), title(原始图像); I1=rgb2gray(I);%转化为灰度图像subplot(3,2,2),imshow(I1),title(灰度图像); I2=edge(I1,robert,0.09,both);%采用robert算子进行边缘检测subplot(3,2,3),imshow(I2),title(边缘检测后图像); se=1;1;1; %线型结构元素 I3=imerode(I2,se); %腐蚀图像subplot(3,2,4),imshow(I3),title(腐蚀后边缘图像); se=strel(rectangle,25,25); %矩形结构元素I4=imclose(I3,se);%图像聚类、填充图像subplot(3,2,5),imshow(I4),title(填充后图像); I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000的部分subplot(3,2,6),imshow(I5),title(形态滤波后图像);预处理结果截图:行列方向像素值累计值: 源代码:y,x,z=size(I5);I6=double(I5); Y1=zeros(y,1); for i=1:y for j=1:x if(I6(i,j,1)=1) Y1(i,1)= Y1(i,1)+1; end end end temp MaxY=max(Y1); figure(); subplot(3,2,1),plot(0:y-1,Y1),title(行方向像素点灰度值累计和),xlabel(行值),ylabel(像素);运行截图:2. 车牌定位车牌起始位置和终止位置PY1=MaxY; while (Y1(PY1,1)=45)&(PY11) PY1=PY1-1; end PY2=MaxY; while (Y1(PY2,1)=45)&(PY2y) PY2=PY2+1; end IY=I(PY1:PY2,:,:); X1=zeros(1,x); for j=1:x for i=PY1:PY2 if(I6(i,j,1)=1) X1(1,j)= X1(1,j)+1; end endendsubplot(3,2,2),plot(0:x-1,X1),title(列方向像素点灰度值累计和),xlabel(列值),ylabel(像数);3. 图片二值化代码:if isrgb(DW) I1 = rgb2gray(DW); %将RGB图像转化为灰度图像else I1=I; endg_max=double(max(max(I1);g_min=double(min(min(I1);T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值m,n=size(I1);% d:二值图像%h=graythresh(I1);I1=im2bw(I1,T/256);subplot(3,2,4);imshow(I1),title(二值化车牌图像);运行截图:滤波二值化图像:I2=bwareaopen(I1,20);subplot(3,2,5);imshow(I2),title(形态学滤波后的二值化图像);过滤出目标车牌区域:y1,x1,z1=size(I2);I3=double(I2);TT=1;%去除图像顶端和底端的不感兴趣区域%Y1=zeros(y1,1); for i=1:y1 for j=1:x1 if(I3(i,j,1)=1) Y1(i,1)= Y1(i,1)+1 ; end end endPy1=1;Py0=1;while (Y1(Py0,1)20)&(Py0=20)&(Py1y1) Py1=Py1+1; endI2=I2(Py0:Py1,:,:);subplot(3,2,6);imshow(I2),title(目标车牌区域);运行截图:4. 列方向像素点灰度值累计代码:X1=zeros(1,x1);for j=1:x1 for i=1:y1 if(I3(i,j,1)=1) X1(1,j)= X1(1,j)+1; end end endfigure(5);plot(0:x1-1,X1),title(列方向像素点灰度值累计和),xlabel(列值),ylabel(累计像素量);运行截图:5. 字符分割:Px0=1;Px1=1;figure();for i=1:7while (X1(1,Px0)3)&(Px0=3)&(Px1x)|(Px1-Px0)10) Px1=Px1+1;endZ=I2(:,Px0:Px1,:);switch strcat(Z,num2str(i) case Z1 PIN0=Z; case Z2 PIN1=Z; case Z3 PIN2=Z; case Z4 PIN3=Z; case Z5 PIN4=Z; case Z6 PIN5=Z; otherwise PIN6=Z;endsubplot(1,7,i);imshow(Z);Px0=Px1;end运行结果:6. 建立字符模板数据库1) 将下列图片存到相应的图片库中,待之后检测比对时用。(注:每个字符图像要单独存放为.jpg文件。) 2) 新建一个自定义函数pretreatment.m 文件,对这些图片进行统一处理:function inpt = pretreatment(I)if isrgb(I) I1 = rgb2gray(I);else I1=I;endI1=imresize(I1,50 25);%将图片统一划为50*25大小I1=im2bw(I1,0.9);m,n=size(I1);inpt=zeros(1,m*n);for j=1:n for i=1:m inpt(1,m*(j-1)+i)=I1(i,j); endend7. 归一化训练代码:I0=pretreatment(imread(h:tuku0.jpg);I1=pretreatment(imread(h:tuku1.jpg);I2=pretreatment(imread(h:tuku2.jpg);I3=pretreatment(imread(h:tuku3.jpg);I4=pretreatment(imread(h:tuku4.jpg);I5=pretreatment(imread(h:tuku5.jpg);I6=pretreatment(imread(h:tuku6.jpg);I7=pretreatment(imread(h:tuku7.jpg);I8=pretreatment(imread(h:tuku8.jpg);I9=pretreatment(imread(h:tuku9.jpg);I10=pretreatment(imread(h:tukuA.jpg);I11=pretreatment(imread(h:tukuB.jpg);I12=pretreatment(imread(h:tukuC.jpg);I13=pretreatment(imread(h:tukuD.jpg);I14=pretreatment(imread(h:tukuG.jpg);I15=pretreatment(imread(h:tukuK.jpg);I16=pretreatment(imread(h:tukuL.jpg);I17=pretreatment(imread(h:tukuM.jpg);P=I0,I1,I2,I3,I4,I5,I6,I7,I8,I9,I10,I11,I12,I13,I14,I15,I16,I17;T=eye(18,18); %输出样本% bp神经网络参数设置net=newff(minmax(P),1250,32,18,logsig,logsig,logsig,trainrp);net.inputWeights1,1.initFcn =randnr;net.layerWeights2,1.initFcn =randnr;net.trainparam.epochs=5000;net.trainparam.show=50;%net.trainparam.lr=0.003;net.trainparam.goal=0.0000000001;net=init(net);net,tr=train(net,P,T);%训练样本测试字符代码:PIN0=pretreatment(PIN0);PIN1=pretreatment(PIN1);PIN2=pretreatment(PIN2);PIN3=pretreatment(PIN3);PIN4=pretreatment(PIN4);PIN5=pretreatment(PIN5);PIN6=pretreatment(PIN6);P0=PIN0,PIN1,PIN2,PIN3,PIN4,PIN5,PIN6;for i=2:7 T0= sim(net ,P0(:,i); T1 = compet (T0) ; d = find(T1 = 1) - 1; if (d=10) str=A; elseif (d=11) str=B; elseif (d=12) str=C; elseif (d=13) str=D; elseif (d=14) str=G; elseif (d=15) str=K; elseif (d=16) str=L; elseif (d=17)第一次训练 str=M; elseif (d=0) str=0; elseif (d=1) str=1; elseif (d=2) str=2; elseif (d=3) str=3; elseif (d=4) str=4; elseif (d=5) str=5; elseif (d=6) str=6; elseif (d=7) str=7; elseif (d=8) str=8; elseif (d=9) str=9; else str=num2str(d); end switch i case 2 str2=str; case 3 str3=str; case 4 str4=str; case 5 str5=str; case 6 str6=str; otherwise str7=str; 第一次识别结果 endend第二次训练第二次识别结果第三次训练 第三次识别结果第四次训练第四次识别结果结果分析:车辆牌照识别,对于交通管理、治安处罚等工作的智能化起着十分重要的作用。它可广泛应用于交通流量检测,交通控制于诱导,机场,港口,小区的车辆管理,不停车自动收费,闯红灯等违章车辆监控以及车辆安全防盗等领域,具有广阔的应用前景。由于牌照是机动车辆管理的唯一标识符号,因此,车辆牌照识别系统的研究在机动车管理方面具有十分重要的实际意义。本设计有以下几条优点:(1) 充分利用MATLAB中已有的函数库,使整个程序设计简单易行;(2) 使用了MATLAB的自定义函数功能,使程序设计更简洁但也发现了更多的缺点:(1) 程序的局限性:只能针对图像中一辆汽车的牌照进行识别;对于图像内的元素较复杂的照片可能无法进行识别。(2) 神经网络的训练要花费30秒以上的训练时间才能进行下一步的字符识别,效率太慢。(3) 程序可能会受软件环境的影响识别准确性,据测试,MATLAB的2010a 版比2009a版识别效率高,准确性也高点。本次实验中进行了三次样本训练,每次识别结果都没有和预期的相符,修改了函数参数也同样没有很大的改善。或者与拍摄的图像质量有关系。通过本次实验,进一步学习掌握了数字图像方面的知识,对matlab软件也有了一定的学习认识。增强了自己的专业能力,培养了自己在数字图像方面的兴趣。
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!