Matlab车牌识别系统_第1页
Matlab车牌识别系统_第2页
Matlab车牌识别系统_第3页
Matlab车牌识别系统_第4页
Matlab车牌识别系统_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、河 南 农 业 大 学数字图像处理课程设计说明书题 目: 基于神经网络的车牌识别 学 院: 理学院 专 业: 信息安全专门化 班 级: 10信安三班 学 号: 1008105072 姓 名: 高凯强 指导教师: 李宝方 成 绩: 时 间: 2013年 5 月 20 日至 2013 年 6 月 5 日基于matlab的车牌识别一、 课程设计目的与要求(一)熟练掌握Matlab和数字图像处理函数的应用;(二)思考并理解所学过的数字图像算法的实现过程;(三)通过Matlab数字图像处理技术实现这一车辆牌照识别的功能。(随着我国交通运输的不断发展,智能交通系统(Intelligent Traffic

2、System,简称ITS)的推广变的越来越重要,而作为ITS的一个重要组成部分,车辆牌照识别系统(vehicle license plate recognition system,简称LPR)对于交通管理、治安处罚等工作的智能化起着十分重要的作用。它可广泛应用于交通流量检测,交通控制于诱导,机场,港口,小区的车辆管理,不停车自动收费,闯红灯等违章车辆监控以及车辆安全防盗等领域,具有广阔的应用前景。由于牌照是机动车辆管理的唯一标识符号,因此,车辆牌照识别系统的研究在机动车管理方面具有十分重要的实际意义!)二、实验内容本次课程实际的任务是设计一个基于matlab的汽车牌照识别程序,能够实现车牌图像

3、预处理,车牌定位,字符分割,然后通过神经网络对车牌进行字符识别,最终从一幅图像中提取车牌中的字母和数字,给出文本形式的车牌号码。三、总体方案设计车辆牌照识别系统的基本工作原理为:将摄像头拍摄到的包含车辆牌照的图像通过视频卡输入到计算机中进行预处理,再由检索模块对牌照进行搜索、检测、定位,并分割出包含牌照字符的矩形区域,然后对牌照字符进行二值化并将其分割为单个字符,然后输入JPEG或BMP格式的数字,输出则为车牌号码的数字。字符分割车牌定位图片预处理车辆图片输出结果字符图像匹配字符样本采集车牌识别系统原理图四、车辆牌照识别系统组成(一)图像预处理:对汽车图像进行图像灰度转换、图像增强和边缘检测等

4、。(二)车牌定位:从预处理后的汽车图像中分割出车牌图像。即在一幅车辆图像中找到车牌所在的位置。(三)字符分割:对车牌图像进行几何校正、去噪、二值化以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像(四)字符识别:对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。五、各个功能模块的主要实现程序(一)图像预处理输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时,常将彩色图像转换为灰度图像,以加快处理速度。对图像进行灰度化处理、边缘提取、再利用形态学方法对车牌进行定位。具

5、体步骤如下:首先对图像进行灰度转换,二值化处理然后采用4X1的结构元素对图像进行腐蚀,去除图像的噪声。采用25X25的结构元素,对图像进行闭合应算使车牌所在的区域形成连通。在进行形态学滤波去除其它区域。1. 原始图像此处用两个图片作为却别,分别为:豫A*A375G 和 渝AN7968 2.代码部分% 选择车牌图片 %filename, pathname = uigetfile('*.jpg''*.bmp''*.gif','选择图片');str = pathname filename;I =imread(str); %将选择的图片读

6、取,并赋于Ifigure(1),subplot(3,2,1),imshow(I);title('原始图像');I1=rgb2gray(I);%转化为灰度图像figure(1),subplot(3,2,2),imshow(I1),title('灰度图像');I2=edge(I1,'roberts',0.09,'both');%采用robert算子进行边缘检测figure(1),subplot(3,2,3),imshow(I2),title('边缘检测后图像');se=1;1;1; %线型结构元素 I3=imerode

7、(I2,se); %腐蚀图像figure(1),subplot(3,2,4),imshow(I3),title('腐蚀后边缘图像');se=strel('rectangle',25,25); % 矩形结构元素I4=imclose(I3,se);%图像聚类、填充图像figure(1),subplot(3,2,5),imshow(I4),title('填充后图像'); I5=bwareaopen(I4,2000);%去除聚团灰度值小于2000的部分figure(1),subplot(3,2,6),imshow(I5),title('形态滤波后

8、图像');3.预处理过程中的图片截图 (2) 车牌定位1.代码部分y,x=size(I5);%获取滤波后图像的尺寸,及长宽I6=double(I5); Y1=zeros(y,1);%创建一个y行1列的0矩阵 for i=1:y for j=1:x if(I6(i,j)=1) Y1(i,1)= Y1(i,1)+1; end end end ,MaxY=max(Y1);figure(2),subplot(2,2,1),plot(0:y-1,Y1); title('行方向像素点灰度值累计和'),xlabel('行值'),ylabel('像素')

9、;%求的车牌的行起始位置和终止位置% PY1=MaxY; while (Y1(PY1,1)>=50)&&(PY1>1) PY1=PY1-1; end PY2=MaxY; while (Y1(PY2,1)>=50)&&(PY2<y) 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 end end figure(2),subplot(2,2,2),plot(0:x-1

10、,X1); title('列方向像素点灰度值累计和');xlabel('列值');ylabel('像数');%求的车牌的列起始位置和终止位置% PX1=1; while (X1(1,PX1)<5)&&(PX1<x) PX1=PX1+1; end PX2=x; while (X1(1,PX2)<5)&&(PX2>PX1) PX2=PX2-1; end %分割出车牌图像%dw=I(PY1:PY2,PX1:PX2,:); imwrite(dw,'dw.jpg','jpg&#

11、39;);figure(2),subplot(2,2,3),imshow(dw);title('定位剪切后的彩色车牌图像');2. 定位结果截图 (3) 字符切割1.代码部分figure(3),subplot(2,2,1),imshow(dw);title('定位后的车牌图像');I1 = rgb2gray(dw); %将RGB图像转化为灰度图像g_max=double(max(max(I1);%获取I1中灰度最大值g_min=double(min(min(I1);%获取I1中灰度最小值T=round(g_max-(g_max-g_min)/3); % 计算二值

12、化的阈值后赋值于TI1=im2bw(I1,T/256);subplot(2,2,2);imshow(I1),title('二值化车牌图像');I2=bwareaopen(I1,20);%删除面积小于20的区域figure(3),subplot(2,2,3),imshow(I2);title('形态学滤波后的二值化图像');y1,x1=size(I2);I3=double(I2);%去除图像顶端和底端的不感兴趣区域%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 ;

13、end end endPy0=1;while (Y1(Py0,1)<20)&&(Py0<y1) Py0=Py0+1;endPy1=Py0; while(Y1(Py1,1)>=20)&&(Py1<y1) Py1=Py1+1; endI2=I2(Py0:Py1,:,:);figure(3),subplot(2,2,4),imshow(I2);title('目标车牌区域');% 分割字符按行积累量%X1=zeros(1,x1);for j=1:x1 for i=1:y1 if(I3(i,j)=1) X1(1,j)= X1(1,j

14、)+1; end end endfigure(4),plot(0:x1-1,X1);title('列方向像素点灰度值累计和'),xlabel('列值'),ylabel('累计像素量');%分割字符%Px0=1;k=1; %记录存储图片的个数for i=1:7 while (X1(1,Px0)<5)&&(Px0<x1) Px0=Px0+1; end Px1=Px0; while (X1(1,Px1)>=5)&&(Px1<x1) Px1=Px1+1; end if(Px1-Px0)<15)

15、% 此处加一个if语句作用是除去识 Px0=Px1+1;% 别时区域X轴区域小于15的部分,为 while (X1(1,Px0)<5)&&(Px0<x1)% 了去除不是字符的部分,例如: Px0=Px0+1;% 豫 A * A 3 7 5 G 中两个A之间 end% 的那个点,由于滤波不能滤掉这个比较 Px1=Px0;% 大一点的点,所以在此去除。不足是: while (X1(1,Px1)>=5)&&(Px1<x1)% 同时也去除了 渝 A N 7 9 6 8 中那 Px1=Px1+1;% 个渝字的偏旁 氵,所以识别出来的 end% 渝少

16、 氵。将错就错,我在样本中用 end% 的也是少 氵的渝。 Z=I2(:,Px0:Px1,:); Z=imresize(Z,40 20);%将图像Z转换成尺寸为40*20的图片 Px0=Px1; imwrite(Z,strcat('分割符号/PIN',num2str(k),'.jpg'),'jpg'); %分割出来的赴澳以.jpg格式存储为图片 k=k+1; %表示需要存储的下一张图片figure(5),subplot(1,7,i),imshow(Z);end2. 字符分割结果截图 (4) 样本采集并归一化输入1. 代码部分(1) 归一化函数:p

17、retreatment.mfunction output = pretreatment(I1)I1=imresize(I1,40 20);%将图片统一划为40*20大小I1=im2bw(I1,0.9);m,n=size(I1);output=zeros(1,m*n);%将图像按列转换成一个行向量%for j=1:n for i=1:m output(1,m*(j-1)+i)=I1(i,j); %将各行元素依次排列成一个行向量 endend(2) 符号识别样本输入%归一化训练样本%I=zeros(43,800);%创建一个由43个拥有800个元素行向量组成的矩阵for i=1:43 I(i,:)

18、=pretreatment(imread(strcat('识别样本/',num2str(i-1),'.jpg');%将识别样本中的每个样本转换成一个行向量存储end%在矩阵I的每一行中P=I'%将的到的矩阵I转置赋于P(5) bp神经网络参数设置T=eye(43,43);net=newff(minmax(P),1000,32,43,'logsig','logsig','logsig','trainrp');net.inputWeights1,1.initFcn ='randnr

19、9;net.layerWeights2,1.initFcn ='randnr'net.trainparam.epochs=5000;net.trainparam.show=50;net.trainparam.goal=0.0000000001;net=init(net);net,tr=train(net,P,T);(6) 分割字符的识别1.代码部分%测试字符,得到识别数值%PIN=zeros(7,800); %定义一个有7个拥有800个元素组成的行向量组成的矩阵for i=1:7 PIN(i,:)=pretreatment(imread(strcat('分割符号/PIN

20、',num2str(i),'.jpg'); %将分割符号中的每个分离图片转换成一个行向量存储在矩阵PIN的每一行中endP0=PIN' %将得到的矩阵PIN转置后赋于P0Str=cell(1,7);%定义一个拥有7个元素字符串for i=1:7 T0 = sim(net ,P0(:,i); T1 = compet (T0) ; d = find(T1 = 1) - 1; if (d<10)%当d<10,说明符号识别为一个数字,再将数字d转换成 str=num2str(d); %与之相对应的字符赋值于str elseif(d>=10)&&

21、amp;(d<=35)%当d>=10且d<=35,说明符号识别为一个字母,由于A的 str=char(d+55);%ASCII值为65,所以与之对应的d都要加55,再由char() else %函数转换成对应的ASCII字符赋值于str switch d%在样本中找到与之相应的汉字,并将汉字字符赋值于strcase 36, str='豫' case 37, str='京' case 38, str='苏' case 39, str='辽'case 40, str='鲁' case 41, str='陕' case 42, str

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论