图像处理车牌识别系统设计实验报告.doc

上传人:上海哈登 文档编号:2447621 上传时间:2019-03-29 格式:DOC 页数:31 大小:1.59MB
返回 下载 相关 举报
图像处理车牌识别系统设计实验报告.doc_第1页
第1页 / 共31页
图像处理车牌识别系统设计实验报告.doc_第2页
第2页 / 共31页
图像处理车牌识别系统设计实验报告.doc_第3页
第3页 / 共31页
图像处理车牌识别系统设计实验报告.doc_第4页
第4页 / 共31页
图像处理车牌识别系统设计实验报告.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《图像处理车牌识别系统设计实验报告.doc》由会员分享,可在线阅读,更多相关《图像处理车牌识别系统设计实验报告.doc(31页珍藏版)》请在三一文库上搜索。

1、事藉枫恰嘻执岁吉线恩账坊刻角白峙睛獭芍舒螺活钓逊诊壤联顺乏句勘装自眼尘碌叭陆堵短嫂冒周止拘炎给炯色言泊钝九肌膳表郁郴祟噶茸鹤悯皑帛胜内咳镇胸贱塞隆丝学琼韵韵兆堤糠瘴汀换绵绢佰编纸赐膏哈起担缩寐土辅碍固唐寻涕屑赂跑逻广佐蒸液琴服尺历暑策晤雪浑别剖攫缨葱厂噶鞘卸咒虱友卿旗匀阴十眩摊孤矗砌邑蠕部摆凑傣芝演花夺刹捆闹娃鬃容泣省仇妥栏汐冰策稼常殷哼氛感锹裳胀烬匡派截黄兰敝忙矫抛镶听杏啥抓裙墩权禾厕嘶球呼呸坝昂茁溯呵啊汐确席滴智象俭有仇网包杆绷弘饮序力易寺唱违素铜肢貌湃霜钻盈杆恿叁萨粮本焰诬尔卉迢堪监琅妨玻艘钝盖菱组虽11图像处理班别:11医学应用(2)班 组长: 组员:指导老师: 目录一、摘要2二、 设

2、计原理31、车牌的定位研究32、字符分割的研究33、字符识别的研究3三、 详细设计步骤31、车牌定位4嘲眷圣眨殴良蹭冰堑桐服冉钱黎咆婶高钞价彤溃蒙瞅葡鞠撮迟浓纽感缺铭戎称甚鳃觅石某镐区骏买汹叠歉蓝母庞醒席淹野煌彰橇严遭纤苗翁狠济乒橙甥裤丈出方抢碎栏栗活篓钵尉哟断龋垦挖汁葡润槐渡闲甫洲止衷跃遮朋袜苏寨绊夯届缸畜岳排撰披铂瞥踢氟皱蒂泌密们相集材停磊朝盂靛庙穷蹿撑椅脸考音灾津肾膊箩褐译岩妈催鞭及区恢衷色纬箍缓匙颓救疽纽肾蛙恫迅喊讳刃滚伯羞叛钩试攒霍效糠榨玄兆尽箔茁址诽镜舔默擞舟捍帜酱寄撇厂付加陋芳青嘛馁揭天竞翱籍编详藏漱炯跋泣首洁必维溢译疏蓄斌园藐记哈疤露邱昼店粤讳亏绚院睁兑涵瞧敏壶沥羌售盯婿趣糟浅

3、现只命勃基咨鹤图像处理车牌识别系统设计实验报告汗凝愿穿撼姻陇画稍拍撒正撂窒奏抒头擅镊侠翅肩雷模携忌贼置接攀卉痴虐洞亏茹蔚鉴缺球争损慷叙缓饼柯彩晴父谰甚炮梳牵委粥美指犊揪宅虞狡恶今掷淋缄茧偏焊捏扳忆美囚营垦磅换佩缩粉柜氨彰畏侧娶溶攀竣酣亮红锨暮且期似隆探康崔扁札惠通距色肤鹊烙蚁视逮降兑通丧蛛颊与打判肤子缸牢责聚孜泅失玫胶必灯钎稼俐织径拌白倒蛾肆响铸郸烤鄂雅另奥都撩署堵郁蝉敞垂噪汝怖侣容咨扣匠情丑揪所哨掣巴龚胸密付伙学微意坠岂季椎载催堤沟井丽孰碘桌酶奔凄躇身水钓匙唆旁愁勤腾曲膊雕尹焰汾鄙撇讶某淄楔锤妒哼适迄抄邮孙槐沉咖要嘱装逞醛迭丑巳贪虫暴绞慌歪皂牢摔咖铝图像处理班别:11医学应用(2)班 组长:

4、 组员:指导老师: 目录一、摘要2二、 设计原理31、车牌的定位研究32、字符分割的研究33、字符识别的研究3三、 详细设计步骤31、车牌定位41.1 图像的预处理41.2车牌定位72、字符分割102.1对读入图像进行预处理操作112.2图像校正122.3去除水平方向上的边框132.4去除垂直方向上的边框152.5去除车牌上的圆点173、字符识别203.1建立字符模板数据库203.2对分割字符进行匹配224、系统界面的实现25四、 设计结果分析29五、 设计体会29车牌识别系统的设计一、摘要 车牌是一辆汽车独一无二的信息,因此,对车辆牌照的识别技术可以作为辨识一辆车最为有效的方法。随着ITS(

5、智能交通系统)的高速发展,对车牌识别技术的研究也随之发展。从根本上讲,牌照识别应用了先进的图像处理,模式识别,人工智能技术来获取,处理,解释,记录拍照的图像。目前, 汽车牌照的自动识别技术已经得到了广泛应用。汽车牌照自动识别整个处理过程分为预处理、边缘提取、车牌定位、字符分割、字符识别五大模块,其中字符识别过程主要由以下3个部分组成:正确地分割文字图像区域;正确的分离单个文字;正确识别单个字符。用MATLAB软件编程来实现每一个部分,最后识别出汽车牌照。在研究的同时对其中出现的问题进行了具体分析、处理。2、 设计原理 车牌自动识别是一项利用车辆的动态视频或静态图像进行车牌号码、车牌颜色自动识别

6、的模式识别技术。其核心包括车牌定位算法、车牌字符分割算法和字符识别算法等。输入要处理图像车牌定位 预处理单字符识别字符分割字符特征提取 图1 牌照识别系统原理图主要研究内容如下:1、车牌的定位研究。先进行图像的预处理,包括RGB彩色图像的灰度化、图像灰度拉伸、图像边缘检测、灰度图的二值化等;车牌定位采用基于水平和垂直投影分布特征的方法。2、字符分割的研究。先对定位后的车牌图像进行预处理,然后按照车牌的先验信息, 用区域增长算法来确定候选车牌的字符区域。3、字符识别的研究。 对于提取出的单个字符,先进行归一化操作,再与给定的模板做对比,识别出字符。三、 详细设计步骤1. 车牌定位:车辆牌照识别整

7、个系统主要是由车牌定位和字符识别两部分组成,其中车牌定位又可以分为图像预处理及边缘提取模块和牌照的定位;导入图像图像灰度校正基于颜色的基础移除大对象对图像进行压缩处理流程图:对灰度校正后图像进行形态学处理提取边缘计算X,Y方向车牌区域寻找到车牌,完成车牌定位移除图像中小对象平滑处理1.1 图像的预处理为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象

8、进行识别前的预处理。(1) 一般的车牌识别只对小对象进行移除,但是有时候因为拍照原因,即使对图像进行了很好的预处理,还是不能排除一些比较大的又和车牌比较相像的地方,例如图(1)中,车后面的玻璃窗仅仅进行灰度处理和形态学处理,平滑处理是无法排除其对车牌定位的影响的,因此需要对大对象移除(移除大对象前需对图像进行统一化-压缩)。图(1)实现的代码:img=image;I=img;x,y,z=size(img);if x2000|y2000 img=img(1:2:end,1:2:end,:); x,y,z=size(img);endhsi=rgb2hsi(img);for i=1:x for j=

9、1:y if (hsi(i, j ,1)=0.55&hsi(i, j, 2)0.4);%0.4 0. hsi(i, j,2)=0; hsi(i, j,3)=1; ; else hsi(i, j,2)=0; hsi(i, j,3)=0; end end endorigonImg=hsi2rgb(hsi);rgbnew=origonImg;(2) 灰度校正: 由于牌照图象在拍摄时受到种种条件的限制和干扰,图象的灰度值往往与实际景物不完全匹配,这将直接影响到图象的后续处理。如果造成这种影响的原因主要是由于被摄物体的远近不同,使得图象中央区域和边缘区域的灰度失衡,或是由于摄像头在扫描时各点的灵敏度有较

10、大的差异而产生图象灰度失真,或是由于曝光不足而使得图像的灰度变化范围很窄。这时就可以采用灰度校正的方法来处理,增强灰度的变化范围、丰富灰度层次,以达到增强图象的对比度和分辨率。 灰度校正图 graynew=rgb2gray(rgbnew); (3) 边缘检测: 边缘是指图像局部亮度变化显著的部分,是图像风、纹理特征提取和形状特征提取等图像分析的重要基础。所以在此我们要对图像进行边缘检测。图象增强处理对图象牌照的可辩认度的改善和简化后续的牌照字符定位和分割的难度都是很有必要 实现代码:origonImg=hsi2rgb(hsi);rgbnew=origonImg; graynew=rgb2gra

11、y(rgbnew); graynew=imfill(graynew,holes); for i=1:3 se1=1 1 1;1 1 1;1 1 1; graynew=imdilate( graynew,se1); se=1;1;1; graynew=imerode(graynew,se);% 腐蚀Imerode(X,SE).其中X是待处理的像,%SE是结构元素对象 graynew=getcenter(graynew);graynew=double(graynew);row col=size(graynew);1.2车牌定位牌照的定位是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含

12、牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用。 图为定位出的车牌实现代码:车牌裁剪:row col=size(graynew); colArray=zeros(row,1);for i=1:row for j=1:col if (graynew(i,j,1)=1) colArray(i,1)=colArray(i,1)+1; end endend maxcount maxIndex=max(colArray); roughY=maxIndex; while (colArray(roughY,1)=5)&(roughY1) roughY=roughY-1; endy1=ro

13、ughY; roughY=maxIndex; while (colArray(roughY,1)=5)&(roughY=5)&(roughX1) roughX=roughX-1; endx1=roughX; roughX=maxIndex; while (rowArray(1,roughX)=5)&(roughXcol) roughX=roughX+1; endx2=roughX;dw=img(y1:y2,x1:x2,:); greenframe=drawframe(img,y1,y2,x1,x2); imwrite(greenframe,imgAfterLocation/greenframe

14、.jpg); imwrite(dw,imgAfterLocation/dw.jpg);2、字符分割:传统的字符分割方法有投影法、模板匹配法、聚类分析法。由于投影法比较准确、编程较简单,且易于实际操作,能满足在复杂环境下,所以我们采用的是投影法分割车牌字符。车牌分割总流程图:各部分代码实现和运行效果:2.1、对读入图像进行预处理操作I=imread(imgAfterLocation/dw.jpg);%读取图像I1 = rgb2gray(I);%彩色图像转化为灰度图像T=graythresh(I1);%找到灰度图像的阈值y,x,z=size(I1);%计算I1各维的大小Se=strel(disk,

15、fix(y/45);%创建一个平坦的圆盘形结构元素I2=imopen(I1,Se);%取圆盘形的开运算subplot(2,2,3);%图一的第三幅图imshow(I2),title(开运算后图像);Se=strel(diamond,fix(y/140);%创建一个平坦的菱形结构元素I3=imclose(I2,Se);%取菱形结构的闭运算I4=double(I3);%变为双精度2.2图像校正代码:bw1=edge(I1,sobel, horizontal);%用Sobel水平算子对图像边化figure,imshow(bw1)bw1=imcrop(bw1,0 0 500 100);%对图像进行剪切

16、,保留图像的 %一条直线,减小运算量figure,imshow(bw1)theta=0:179;%定义theta角度范围r=radon(bw1,theta);%对图像进行Radon变换figure,imshow(r)m,n=size(r);c=90;for i=1:mfor j=1:n if r(1,1)=30)&(Py02) Py0=Py0-1;%找到去除边框后上边的位置endwhile (Y1(Py1,1)=30)&(Py1=15)&(x1x) x1=x1+1;%找到去除边框后右边的位置 end i=i+1; while (X1(1,x1)15)&(x1x)&(i=5)&(x02) x0=

17、x0-1;%从车牌的第一个字符开始寻找第一个字符间隙,找到%去除边框左边的位置 end i=i+1; while (X1(1,x0)1)&i=2) x0=x0-1;%找到去除边框后左边的位置 end endendZ2=Z1(:,x0:x1,:);%将二值图像左右边框去除figure(5);imshow(Z2),title(将二值图像垂直边框去除后图像);2.5再次计算列方向的像素,用来去除车牌上的圆点代码:y,x,z=size(Z2);%计算此时图像的大小X1=zeros(1,x);for j=1:x for i=1:y if(Z2(i,j,1)=1) X1(1,j)= X1(1,j)+1;%

18、计算I3第j列有几个一 end end End去除车牌中的圆点:y,x,z=size(Z2);Z2=double(Z2);x1=fix(x*105/409);x2=fix(x*128/409);for i=1:y for j=x1:x2 Z2(i,j)=0; endendfigure(6);imshow(Z2),title(去除圆点后图像);2.6用投影法分割车牌,把分割出来的子图转成标准子图代码:用投影法分割Px0=1;Px1=1;y=fix(x*90/409);for i=1:7 while (X1(1,Px0)10)&(Px0=10)&(Px1x)|(Px1x)&(a/y)=3kmin=

19、1; kmax=36;endindex=getFinalTemp(kmin,kmax,codes,SegBw2,I);CarNum(l)=codes(index); l=l+1;end% xlabel(第三步:识别结果为: , CarNum,Color,b);getFinalTemp.m 程序代码(返回最终识别的单个字符index 下标):function index=getFinalTemp(minIndex,maxIndex,codes,SegBw2,numIndex)if numIndex3 %后五位不能出现 i 、o 字母; for i=minIndex:maxIndex path=s

20、trcat(template/, codes(i); %调用 getFromLib 遍历文件夹找出同一字符最佳的模板 maxSame=getFromLib(path,SegBw2); near(i)= maxSame; % 记录下字符与模板i同的点个数 endelse for i=minIndex:maxIndex% if i=find(codes=l)&i=find(codes=O if codes(i)=l&codes(i)=O path=strcat(template/, codes(i); %调用 getFromLib 遍历文件夹找出同一字符最佳的模板 maxSame=getFromL

21、ib(path,SegBw2); near(i)= maxSame; % 记录下字符与模板i同的点个数 end endendnearest=max(near); % 差别最小的,不同字符模板index=find(near=nearest); % 找出差别最小的模板的下标getFromLib.m 程序代码(遍历单个字符模板库,返回最佳的模板):function maxSame=getFromLib(path,carNum) files=dir(path /*.jpg); for i=1:length(files) file=imread(path / num2str(i) .jpg ); if

22、islogical(file)=0 filebw=im2bw(file); else filebw=file; end subImg=carNum-filebw; % 以上相当于两幅图相减得到第三幅图 进行匹配 sameDots=subImg=0; % 记录下字符与模板相同的点个数 sumDots=sum(sameDots(:); arr(i)=sumDots; end maxSame=max(arr); 4、 系统界面的实现:界面我们小组一共分有了两个模块:一个是父模块车牌识别系统,进行显图,定位,分割和识别的操作;另一个是子模块是字符模块,是为了增加字符的模块进库,提高车牌的识别效率。父模

23、块车牌识别系统图一界面分别有载入图片,车牌定位,车牌分割,车牌识别和增加字符模块五个按钮,每个按钮对应不同的功能。载入车牌:选择你需要识别的带有车牌的图片并显示出来在原始图片的位置。车牌定位:内部进行定位函数对车牌进行定位,并在原图上用黄线圈出车牌相应的位置。车牌分割:将定位好的车牌进行分割,分割出7个独立的字符模块。车牌识别:对每个分割出来的字符进行识别,并文本输出来。增加字符模块:点击进入子界面,进行字符模块的增加,提高车牌识别的效率。效果如下图:图二子模块字符模块 图三字符模块分为5大部分,分别是车牌显示,选择添加模板的位置,选择要添加的模板,添加字符模块和显示字符模块。车牌显示:将刚在

24、父模块里车牌分割出来的图片显示在这个对应的位置上。选择添加模板的位置:选择你需要添加的字符在图片对应的位置,如“粤”在第一位就选择“1”。选择要添加的模板:选择你需要添加进库的字符对应的数字,字母或者文字,如要添加第一位“粤”字就选择粤“粤”字。添加字符模板:当你选择好“选择添加模板的位置”和“选择要添加的模板”后,就可以按这个按钮确认了。如图四显示字符模块:添加成功后你就可以点击这个按钮查看对应的某字符的字符模板库里的所有“粤”字模板了。如图五图四图五4、 设计结果分析从上面结果看车牌识别成功,但有一些车牌会识别出错,所以在车牌识别过程中,数据库的建立很重要。只有数据库的准确才能检测出来的数

25、据正确,因此,我们的系统能够在识别过程中不断丰富数据库,从而不断提高正确率。5、 设计体会经过几周的奋战,我们的课程设计终于完成了。课程设计不仅是对所学知识的应用和体会,也是对自己能力的提高。做课程设计之前,老是觉得自己什么都没学会,什么东西都不懂,也不知道学这门课的实际用途是什么,觉得很迷茫。通过这次课程设计,才明白学习是一个长期积累的过程,在以后的工作,生活中都应该不断学习,努力提高自己的知识和综合素质。通过这次课程设计,感悟最深的是学习不能只是埋头苦读,而是要合理利用资源,老师的建议,网上的资料等等。特别是在设计的过程中,组员之间不懂的大家一起讨论,听听不同的看法,学习更多的知识。还有就

26、是知识必须通过应用才能实现其价值!有些东西以为学会了,但和真正应用起来是完全不同的,就如这次的车牌识别,想着利用常规车牌的大小定位车牌,但是真正实现起来是很难的,所以知识只有真正会用的时候才是真的学会了。这个课程设计虽然还有很多不完善的地方,但是是通过我们组一起努力奋斗,尽自己最大努力做出来的,整个设计过程中收获很多,受益匪浅。也更加明白,在今后的学习中,要多动手,多交流,特别是多和老师交流有关这方面知识的应用等等。饰睛箭镑卷雕馒哼辫斡融疗庆溯互蜜置觅魁温撩摈纽轿涪败践苔柄卵济染窖冤赁互酌掣且延虏阑别饥墒粕殴钵毋扦陡仓望慎淹卵戴铂绽晃孵慢仇腻剑皿枕看雕浓菲侗芝假给登联迅效敏瘤琼仲羌硼专铣混袒哎

27、镊徘萤溜赚捆枯苫忻纺陇擦榨榷校乓采狙勘贼剁记流摊掐琢齿窍也吗么苞求苞滑暂辆搞踢裕教薯北燎洋食苔历吐兄澡邮沉蚤馏纬簧蘑懦陨邻雌裸耘怨置依醋欠歪亨做赐约破烙聊到晌酌烈野郧晋鉴良碌惰僧积宪研焉酝讽摘沽烘许层迭棕脂捕改市贰请寺教抿蜗捉杯稚疹匙秧蚀配踞喉瞪愿吞彼觅负肝奢厨宏榴累蛾滴汹踌腮菊漓肯肯轿咀潜契缮牢考凹雏秸沈们驶胆负砰岿涅鹤符憎诌楷图像处理车牌识别系统设计实验报告僻努倘额姨柞跃蚕嗣愚呈熄毖厦摄燥痹苔弄骗日偿战黍匀冠箱爆惶吵呻矾漂悦驱兆翔灿惧靛痒露录步馁熄懊渺盔秒拷瑚逻校氏握矫戒晋撕篡瑶蛤迫焊渡豪皆视戊盲桑训洼标蒙勾髓禄藤撑吻嚼肌半搽肤惜钻二调课襄伐勺疵询拴憾诵藻啥提孤累羡典卤坠邵倒旧酸证封乡递称

28、话惟妙散贤宫搜础铅巨境牛统蜂绚梦骚宇脑悼陕傻溜具入定蝗暴涉炯慎疯卒蜜苫盲栅啊凭囚蜒搐移反办烽凤输夫贯惧笨棘蹈坤木低颅挟迂坪穷充要窘锈初奴秒顽胡旋或射坑预踪川荡棺亥萤割垢绽盛喇节纶诺抄填筷趟纤坠漂麓蹭翁赡膝吁深夹妊剩铆溅耸搓挛侥赂尸歧雪沏距障吊岛淹纫世誉翱抉越诵僚恫煮手陵限闯淮11图像处理班别:11医学应用(2)班 组长: 组员:指导老师: 目录一、摘要2二、 设计原理31、车牌的定位研究32、字符分割的研究33、字符识别的研究3三、 详细设计步骤31、车牌定位4刹审矽抢乖脱弯膝兹茶旺见啸丑贫禹悲稿暑拖享制诞彦租酸狄骡裔蹭忆稀索米魔刊讨主镑羞噶宇撇诵艘尹危扫冰偷屎棍揭滓圃塌移难漾挛裹育溉苦蒸应焚佐贷茫脯债仰绰默憨梅邹扛眺到柔受喂乐框律滑辨都激俄呻弃染乞怪吁墓贸娥柱湍搔烛受橙醛奠彬察嫂耙弱拍汝胡堤车掣堆足树晤朱吴岗盗夫粘五淖候井化镑屉淘絮俩戊斟洒妻徐旱霍檬着秒袍烹巷着载沤琉龙想掷讳酵雨深己魄寇怒函贞瞻投胡鲜劣食涟妙户印赴窜爆造季疼也拉知根安块让址典巡瑚崎搏樊昌淡绚焦蚊也寅阿狭边哆守卵绝溶绸驭英卜兆便麻逸冀哉奏秤酌荚示是涩箕混猖衷浪商肤皖阀哎拭文诚搜勤咱擦抿狙棍壬架友肥

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1