实验四汽车的牌的照自动的识别_第1页
实验四汽车的牌的照自动的识别_第2页
实验四汽车的牌的照自动的识别_第3页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

1、贵州大学实验报告学院:计算机科学与技术学院专业:计算机科学与技术学院班级:姓名孙明伟学号1108060026实验组实验时间2014-12-15指导教师吕晓丹成绩实验项目名称实验四汽车牌照自动识别实1.分析汽车牌照的特点,正确获取整个图像中车牌的区域,并识别出车牌号。验目2.将图像预处理、分割、分析等关键技术结合起来,理论与实践相结合,提咼图像处理关键技术的综合应用能力。的实验1、对图像某进行直方图均衡化处理。要2、再对图像进行直方图规定化处理。求牌照自动识别是一项利用车辆的动态视频或静态图像进行牌照号码、牌照颜色自动识别的模式识别技术。其硬件基础一般包括触发设备、摄像设备、照明设备、图像采集实

2、设备、识别车牌号码的处理机等,其软件核心包括车牌定位算法、车牌字符分割算法和验光学字符识别算法等。某些牌照识别系统还具有通过视频图像判断车辆驶入视野的功能原称之为视频车辆检测。一个完整的牌照识别系统应包括车辆检测、图像采集、牌照识别理等几部分。当车辆检测部分检测到车辆到达时触发图像采集单元,采集当前的视频图像。牌照识别单元对图像进行处理,定位出牌照位置,再将牌照中的字符分割出来进行识别,然后组成牌照号码输出。1. 牌照定位自然环境下,汽车图像背景复杂、 光照不均匀,如何在自然背景中准确地确定牌照找到符合评判,最后区域是整个识别过程的关键。首先对采集到的视频图像进行大范围相关搜索,汽车牌照特征的

3、若干区域作为候选区,然后对这些侯选区域做进一步分析、选定一个最佳的区域作为牌照区域,并将其从图象中分割出来。流程图如下:2. 牌照字符分割完成牌照区域的定位后, 再将牌照区域分割成单个字符,然后进行识别。字符分割般采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值的附近,并且这个位置应满足牌照的字符书写格式、字符、尺寸限制和一 些其他条件。利用垂直投影法对复杂环境下的汽车图像中的字符分割有较好的效果。程图如下:3. 牌照字符识别基于模板匹字符识别方法目前主要有基于模板匹配算法和基于人工神经网络算法。配算法首先将分割后的字符二值化,并将其尺寸大小缩放为字符数据库

4、中模板的大小, 然后与所有的模板进行匹配,最后选最佳匹配作为结果。基于人工神经元网络的算法有 两种:一种是先对待识别字符进行特征提取,然后用所获得特征来训练神经网络分配器;另一种方法是直接把待处理图像输入网络,由网络自动实现特征提取直至识别出结果。function d=ma in (jpg)匸imread('car.jpg');figure(1),imshow(l);title('原图');11= rgb2gray(l);figure(2),subplot(1,2,1),imshow(I1);title('灰度图');figure(2),subp

5、lot(1,2,2),imhist(I1);title('灰度图直方图');I2=edge(I1,'robert',0.08,'both');实figure(3),imshow(I2);title('robert算子边缘检测')验se=1;1;1;内I3=imerode(I2,se);容figure(4),imshow(I3);title('腐蚀后图像');se=strel('recta ngle',40,40);I4=imclose(I3,se);figure(5),imshow(I4);titl

6、e('平滑图像的轮廓');I5=bwareaope n(l4,2000);figure(6),imshow(I5);title('从对象中移除小对象');y,x,z=size(l5);myl=double(l5);%begin横向扫描ticBlue_y=zeros(y,1);for i=1:yfor j=1:xif(myl(i,j,1)=1)%如果myl(i,j,1)即myl图像中坐标为(i,j)的点为蓝色%则Blue_y的相应行的元素 white_y(i,1)值加1Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计endendendtemp

7、 MaxY=max(Blue_y);%temp 为向量 white_y 的元素中的最大值,MaxY 为该值的索引(在向量中的位置)PY1=MaxY;while (Blue_y(PY1,1)>=120)&&(PY1>1)PY仁 PY1-1;endPY2=MaxY;while (Blue_y(PY2,1)>=40)&&(PY2<y)PY2=PY2+1;endIY=I(PY1:PY2,:,:);%IY为原始图像1中截取的纵坐标在 PY1 : PY2之间的部分%end横向扫描%begi n纵向扫描Blue_x-zeros(1,x);% 进一步确疋

8、 x方向的车牌区域for j=1:xfor i=PY1:PY2if(myl(i,j,1)=1)Blue_x(1,j)= Blue_x(1,j)+1;endendendPX仁 1;while (Blue_x(1,PX1)<3) &&(PX1<x)PX仁 PX1+1;endPX2=x;while (Blue_x(1,PX2)<3) &&(PX2>PX1)PX2=PX2-1;end%end纵向扫描PX仁PX1-2;%对车牌区域的校正PX2=PX2+2;dw=l(PY1:PY2,:,:);t=toc;figure(7),subplot(1,2,1

9、),imshow(IY),title(' figure(7),subplot(1,2,2),imshow(dw),title(' imwrite(dw,'dw.jpg');file name,filepath=uigetfile('dw.jpg',' jpg=strcat(filepath,file name);a=imread('dw.jpg');b=rgb2gray(a);imwrite(b,'1.车牌灰度图像.jpg');figure(8);subplot(3,2,1),imshow(b),title

10、('1.g_max=double(max(max(b);g_mi n=double(mi n( mi n(b);T=ro un d(g_max-(g_max-g_mi n)/3); % Tm, n=size(b);d=(double(b)>=T); % d:二值图像 imwrite(d,'2. 车牌二值图像.jpg'); figure(8);subplot(3,2,2),imshow(d),title('2. figure(8),subplot(3,2,3),imshow(d),title('3.行方向合理区域');定位剪切后的彩色车牌图像

11、')输入一个定位裁剪后的车牌图像');车牌灰度图像')为二值化的阈值车牌二值图像')均值滤波前')%滤波h=fspecial('average',3);d=im2bw(ro un d(filter2(h,d);imwrite(d,'4.均值滤波后.jpg');figure(8),subplot(3,2,4),imshow(d),title('4.均值滤波后')%某些图像进行操作%膨胀或腐蚀% se=strel('square',3); %使用一个3X3的正方形结果元素对象对创建的图像膨胀%

12、'li ne'/'diam on d'/'ball'.se=eye(2); % eye( n) returns the n-by-n ide ntity matrix单位矩阵m, n=size(d);if bwarea(d)/m/n>=0.365d=imerode(d,se);elseif bwarea(d)/m/n<=0.235d=imdilate(d,se);endimwrite(d,'5.膨胀或腐蚀处理后.jpg');figure(8),subplot(3,2,5),imshow(d),title('5.

13、膨胀或腐蚀处理后')%寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割d=qiege(d);m, n=size(d);figure,subplot(2,1,1),imshow(d),title( n)k1=1;k2=1;s=sum(d);j=1;while j=nwhile s(j)=0j=j+1;endk1=j;while s(j)=0 && j<=n-1j=j+1;endk2=j-1;if k2-k1>=rou nd( n/6.5)val, nu m=mi n( sum(d(:,k1+5:k2-5);d(:,k1+ num+5)=

14、0;% 分割endend%再切割d=qiege(d);%切割出7个字符y1=10;y2=0.25;flag=0;word 1=;while flag=Om, n=size(d);left=1;wide=0;while sum(d(:,wide+1)=0wide=wide+1;endif wide<y1%认为是左侧干扰d(:,1:wide)=0;d=qiege(d);elsetemp=qiege(imcrop(d,1 1 wide m);m, n=size(temp);all=sum(sum(temp);two_thirds=sum(sum(temp(ro un d(m/3):2*ro u

15、n d(m/3),:);if two_thirds/all>y2flag=1;word 仁temp;% WORD 1endd(:,1:wide)=O;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); figure(9),imshow(word1),title('1

16、'); figure(10),imshow(word2),title(2); figure(11),imshow(word3),title(3); figure(12),imshow(word4),title('4'); figure(13),imshow(word5),title('5'); figure(14),imshow(word6),title('6'); figure(15),imshow(word7),title('7');m,n=size(word1);%商用系统程序中归一化大小为40*20,此处演示wor

17、d 1= 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);figure(16),subplot(3,7,8),imshow(word1),title('1');subplot(3,7,9),imshow(word2),title('2

18、');subplot(3,7,10),imshow(word3),title('3');subplot(3,7,11),imshow(word4),title('4');subplot(3,7,12),imshow(word5),title('5');subplot(3,7,13),imshow(word6),title('6');subplot(3,7,14),imshow(word7),title('7');imwrite(word1,'1.jpg');imwrite(word2,

19、9;2.jpg');imwrite(word3,'3.jpg');imwrite(word4,'4.jpg');imwrite(word5,'5.jpg');imwrite(word6,'6.jpg');imwrite(word7,'7.jpg');liccode=char('0':'9' 'A':'Z''冀苏豫陕鲁');%建立自动识别字符代码表SubBw2=zeros(40,20);l=1;for I=1:7ii=i nt2s

20、tr(I);t=imread(ii,'.jpg');SegBw2=imresize(t,40 20,' nearest');SegBw2=double(SegBw2)>20;if l=1%第一位汉字识别kmin=37;kmax=40;elseif l=2%第二位 AZ 字母识别kmi n=11;kmax=36;else l>=3%第二位以后是字母或数字识别kmi n=1;kmax=36;endfor k2=kmi n:kmaxfname=strcat('字符模板 1',liccode(k2),'.jpg');SamBw

21、2 = imread(fname);SamBw2=double(SamBw2)>1;for i=1:40for j=1:20SubBw2(i,j)=SegBw2(i,j)-SamBw2(i,j);endend%以上相当于两幅图相减得到第三幅图Dmax=O;for k1=1:40for 11=1:20if ( SubBw2(k1,l1) > 0 | SubBw2(k1,l1) <0 )Dmax=Dmax+1;endendendError(k2)=Dma x;endError仁Error(kmi n:kmax);Min Error=mi n( Error1);fin dc=fi

22、nd(Error1=Mi nError);1=1+1;endfigure(17),subplot(3,1,2),imshow(dw),title ('车牌号码:贵 A 1 0 7 5 3');%子程序:(getword 子程序)function word,result=getword(d)word=;flag=0;y1=8;y2=0.5;while flag=0m, n=size(d);wide=0;while sum(d(:,wide+1)=0 && wide<=n-2 wide=wide+1;endtemp=qiege(imcrop(d,1 1 wide m);ml, n1=size(temp);if wide<y1 && n1/m1>y2d(:,1:wide)=0

温馨提示

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

评论

0/150

提交评论