基于数字图像处理的车牌识别本科毕业论文.doc

上传人:laozhun 文档编号:3940519 上传时间:2023-03-28 格式:DOC 页数:22 大小:745.50KB
返回 下载 相关 举报
基于数字图像处理的车牌识别本科毕业论文.doc_第1页
第1页 / 共22页
基于数字图像处理的车牌识别本科毕业论文.doc_第2页
第2页 / 共22页
基于数字图像处理的车牌识别本科毕业论文.doc_第3页
第3页 / 共22页
基于数字图像处理的车牌识别本科毕业论文.doc_第4页
第4页 / 共22页
基于数字图像处理的车牌识别本科毕业论文.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《基于数字图像处理的车牌识别本科毕业论文.doc》由会员分享,可在线阅读,更多相关《基于数字图像处理的车牌识别本科毕业论文.doc(22页珍藏版)》请在三一办公上搜索。

1、本科生毕业论文(设计)题 目: 基于数字图像处理的车牌识别设计 姓 名: 周金鑫 学 院: 数理与信息工程学院 专 业: 电子信息工程 班 级: 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字

2、符的分割与识别114.4.1.车牌的再处理114.4.2字符分割134.5车牌识别:175、总结:206、致谢207、参考文献:21基于数字图像处理的车牌识别设计电子信息工程专业学生 周金鑫指导教师 刘纯利摘要:车牌识别在人类社会交通系统中担当重要角色,一个设计优良的车牌识别系统会给人们生活带来极大的方便,本文通过运用matlab和数字图像处理的一些知识简单通过图像预处理,车牌定位,字符分割,采用模板匹配法实现车牌字符的识别。关键词 : 图像预处理 边缘处理 字符分割 字符识别 1、设计目的车牌识别系统主要是为了辨别所拍图片中的车牌部分,以此识别车辆。通过车牌识别系统的设计,来实现经过我校西大

3、门的车辆的识别。 2、设计原理:设计的原理主要如下图所示:照明设备摄像设备触发设备 车牌识别处理单元图像采集设备3、设计步骤:流程图如下:图象输入 图像预处理车牌定位字符分割字符识别 4、实行方案4.1. 总体实行方案:用摄像机获取自然环境下的汽车彩色图像,将彩色图像用matlab软件处理成灰度图像并绘制直方图,然后进行边缘检测图像的腐蚀,平滑图像以及去除二值图像的小对象等操作,再进行车牌的定位和字符分割与识别最终达到识别车牌照的目的。4.2. 各模块的实现:4.2.1输入待处理的原始图像:I=imread(car.jpg);imshow(I);%显示车牌的原始图片,结果如下: 图4.2.1原

4、始图像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

5、(灰度图直方图);%绘制灰度图和直方图显示结果图像如下:图4.2.2灰度化并绘制直方图picture24.2.3 边缘检测边缘是一定存在在两个拥有不一样灰度值的相邻的区域之间的,是灰度值不连续的一种表现,也是分割图象、纹理和形状特征提取等图像分析的基础。本文用Roberts算子来实现边缘检测,他是一种利用局部差分算子寻找边缘的算子,Robert算子图像处理后结果边缘不是很平滑,当然还需要后续的腐蚀,平滑图像以及去除二值图像的小对象操作来提高精度。由于阈值越小检测的边缘越丰富,结合选取的灰度图选择阈值为0.16较为合适。用roberts算子实行边缘检测:I2=edge(I1,roberts,0.

6、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平滑图像 图像平滑是去掉图像中的高频信息,使图像变的模糊,噪声一般都是高频信息,平滑的过程也就意味着除去图片噪声的过程。s

7、e=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.

8、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)

9、 %若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,:,:); %行方向车牌区域确定

10、 % 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)PX1) PX2=PX2-1; end PX1=PX1-1;%车牌区域校正 PX2=PX2+1; dw=I(PY1:PY2-8,PX1:PX2,:); t=toc; subplot(1,2,1),im

11、show(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);%把彩色车

12、牌写入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 pla

13、te.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)% 操作某些图象%

14、膨胀或腐蚀% 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);subplo

15、t(3,2,4),imshow(d),title(expansion or corrosion the licence plate);运行结果显示如下:图4.4.1字符分割与识别picture84.4.2字符分割字符分割就是把已经定位好的车牌区域上的字符分别提取出来,我们知道中国的车牌上字符之间是存在间隙的,就是利用这个间隙来实现我们对定位区域的车牌分割,通过搜索连续在一起的字符块,若长度高于某一阈值,则为两个字符组成,要分割,对分割好的字符再进行归一化的处理。%搜索连续在一起的字符块,若长度高于某一阈值,则为两个字符组成,要分割,对分割 %建立子函数qiege、getword,调用子程序,分

16、割车牌字符并做归一化的处理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; % 分割车牌字符 endend% 进一步切割d=qiege(d);% 切割出 7七个字符y1=10;y2=0.25;flag=0;word1=;while flag=0 m,n=

17、size(d); left=1;wide=0; while sum(d(:,wide+1)=0 wide=wide+1; end if widey2 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,

18、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);% 取4

19、0*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)

20、,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

21、.jpg);imwrite(word7,7.jpg);运行结果显示如下: 图4.4.2字符分割picture94.5车牌识别:在此采用相减的模板匹配法来判断字符和模板中哪一个字符最接近,再找到相似度最高的字符作为输出结果。通常车辆牌照的字符有7个,一般第一位是汉字,表示车辆所属的省份,而后的为字母和数字。车牌字符的识别较一般文字识别要简单些,主要是它的字符数是有限的,汉字一共约50多个,大写英文字母26个,数字10个。出于实验运算方便的考虑,本文仅建立了7个汉字26个字母与10个数字的模板。其他的模板算法与之相同。第一步取字符模板,第二步依次取待识别字符与模板进行匹配,第三步将选中的字符与模板

22、字符相减,得到的零越多也即就越匹配。第四步每一幅相减后的图的零值的个数都要保存,并作为识别出来的结果。识别的流程图显示如下:识别字符相减后,值越小表示相似度越大,找到最小的一个也即为匹配的最好的创建自动识别代码表读取分割出来的字符将第一个字符与模板中的汉字模板进行匹配将第二个字符与模板中的字母模板进行匹配将后面五个字符与模板中的字母与数字模板进行匹配识别完成,输出此模板对应值源代码显示如下:liccode=char(0:9 A:Z 皖豫苏鲁京沪津); %建立自动识别字符代码表 SubBw2=zeros(40,20);l=1;for I=1:7 ii=int2str(I); t=imread(i

23、i,.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:

24、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

25、-1); Code(l*2)= ; l=l+1;endpicture(10),imshow(dw),title (车牌号码:, Code,Color,b); 图4.5.1车牌识别picture105、总结:实验对车牌识别系统的识别主要依靠的工具是matlab软件编程,分别从图像预处理、车牌定位、字符分割以及字符识别等方面进行了系统的分析。从本设计用MATLAB编程运行结果可以得出,对于一张自然环境下牌照照片进过本设计采用的图像预处理、roberts算子进行边缘检测、删除二值图像的小对象、车牌识别等对车牌的定位都是非常有效的。6、致谢经过这段时间的不断努力我的毕业设计终于搞定了。当你踏踏实实完成

26、毕业设计时你会发现他不仅可以检验前面所学知识,而且也可以提高对自己的自学能力。通过这次的毕业论文设计让我对matlab软件的认识和对数字图像处理的相关知识有了较深的理解,让我了解到知识的学习是一步一个脚印,学习不仅要靠之间的努力专研,还学要虚心求教,有什么不懂不会的不能钻牛角尖,多和同学和老师进行交流,在老师的悉心指导下我学起知识那是非常的迅速,有时问题理解不过来往往是某个知识点不会活着不理解,一担有人在旁稍微指导一下就会豁然开朗。这次毕业设计让我自己的学习更加有自信,相信在以后的工作中,我也会有很大的信心将工作做好。 7、参考文献:【1】王正林,刘明.精通MATLAB7 北京 电子工业出版社

27、 2006.【2】郑阿奇.MATLAB实用教程 北京 电子工业出版社 2004.【3】阮秋琦.数字图像处理(第三版)北京 电子工业出版社 2013.License plate recognition based on the design of digital image processingStudent majoring inElectronic and Information Engineering zhoujinxinTutor liuchunliAbstract License plate recognition systems play in human society an im

28、portant role in transportation, a well-designed license plate recognition system will bring great convenience to peoples lives, the paper through the use of some of the knowledge and digital image processing matlab simply by image preprocessing, license plate location, character segmentation using template matching method to achieve the license plate character recognition.Keywords image pre-processing character segmentation edge character recognition

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号