机器视觉-实验三报告-模板匹配法实现车牌识别

上传人:第*** 文档编号:56004354 上传时间:2018-10-08 格式:DOCX 页数:20 大小:2.31MB
返回 下载 相关 举报
机器视觉-实验三报告-模板匹配法实现车牌识别_第1页
第1页 / 共20页
机器视觉-实验三报告-模板匹配法实现车牌识别_第2页
第2页 / 共20页
机器视觉-实验三报告-模板匹配法实现车牌识别_第3页
第3页 / 共20页
机器视觉-实验三报告-模板匹配法实现车牌识别_第4页
第4页 / 共20页
机器视觉-实验三报告-模板匹配法实现车牌识别_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《机器视觉-实验三报告-模板匹配法实现车牌识别》由会员分享,可在线阅读,更多相关《机器视觉-实验三报告-模板匹配法实现车牌识别(20页珍藏版)》请在金锄头文库上搜索。

1、实验三报告实验三报告 模板匹配法实现车牌识别模板匹配法实现车牌识别一、实验目的一、实验目的结合印刷体字符识别方法,用模板匹配法实现车牌识别。要求:能实现车牌定位、字符分割和车牌中数字 0-9 的识别。二、实验设备二、实验设备微机三、实验内容及步骤三、实验内容及步骤1 上机编写程序。2 调试程序。3 根据实验结果,撰写实验报告。四、实验报告四、实验报告( (一一) )对汽车图像进行图像转换、图像增强和边缘检测等对汽车图像进行图像转换、图像增强和边缘检测等: :1.载入车牌图像:I=imread(car1.jpg);figure(1),imshow(I);title(original image)

2、;%将车牌的原图显示出来,结果如下:2.将彩图转换为灰度图并绘制直方图:I1=rgb2gray(I);%将彩图转换为灰度图figure(2),subplot(1,2,1),imshow(I1);title(gray image);figure(2),subplot(1,2,2),imhist(I1);title(灰度图直方图);%绘制灰度图的直方图结果如下所示:3. 用 roberts 算子进行边缘检测:I2=edge(I1,roberts,0.18,both);%选择阈值 0.18,用 roberts 算子进行边缘检测figure(3),imshow(I2);title(roberts op

3、erator edge detection image);结果如下:4.图像实施腐蚀操作:se=1;1;1;I3=imerode(I2,se);%对图像实施腐蚀操作,即膨胀的反操作figure(4),imshow(I3);title(corrosion image);5.平滑图像se=strel(rectangle,25,25);%构造结构元素以正方形构造一个 seI4=imclose(I3,se);% 图像聚类、填充图像figure(5),imshow(I4);title(smothing image);结果如下所示:6. 删除二值图像的小对象I5=bwareaopen(I4,2000);%

4、 去除聚团灰度值小于 2000 的部分figure(6),imshow(I5);title(remove the small objects); %用 imshow 函数显示滤波后图像结果如下所示 :(二)车牌定位(二)车牌定位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:yfor j=1:xif(myI(i,j,1)=1) %如果 myI(i,j,1)即 myI 的图像中坐标

5、为(i,j)的点值为 1,即该点为车牌背景颜色蓝色%则 Blue_y(i,1)的值加 1Blue_y(i,1)= Blue_y(i,1)+1;%蓝色像素点统计 end end endtemp MaxY=max(Blue_y);%Y 方向车牌区域确定%temp 为向量 yellow_y 的元素中的最大值,MaxY 为该值的索引PY1=MaxY;while (Blue_y(PY1,1)=5)end PY2=MaxY;while (Blue_y(PY2,1)=5)endPX1=PX1-1;%对车牌区域的校正PX2=PX2+1;dw=I(PY1:PY2-8,PX1:PX2,:);t=toc; figu

6、re(7),subplot(1,2,1),imshow(IY),title(Line direction areas);%行方向车牌区域确定figure(7),subplot(1,2,2),imshow(dw),title(positioning color images);%定位后的车牌区域如下所示:(三三)字符分割与识别字符分割与识别1.车牌的进一步处理对分割出的彩色车牌图像进行灰度转换、二值化、均值滤波、腐蚀膨胀以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像,对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。代码如下

7、:imwrite(dw,dw.jpg);%将彩色车牌写入 dw 文件中a=imread(dw.jpg);%读取车牌文件中的数据b=rgb2gray(a);%将车牌图像转换为灰度图imwrite(b,gray licence plate.jpg);%将灰度图像写入文件中figure(8);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)

8、; % d:二值图像imwrite(d,binary licence plate.jpg);subplot(3,2,2),imshow(d),title(before filtering binary licence plate)%均值滤波前% 滤波h=fspecial(average,3);%建立预定义的滤波算子,average 为均值滤波,模板的尺寸为 3*3d=im2bw(round(filter2(h,d);%使用指定的滤波器 h 对 h 进行 d 即均值滤波imwrite(d,after average licence plate.jpg);subplot(3,2,3),imshow

9、(d),title(after average licence plate)% 某些图像进行操作% 膨胀或腐蚀% se=strel(square,3); % 使用一个 3X3 的正方形结果元素对象对创建的图像进行膨胀% line/diamond/ball.se=eye(2); % eye(n) returns the n-by-n identity matrix 单位矩阵m,n=size(d);%返回矩阵 b 的尺寸信息, 并存储在 m,n 中if bwarea(d)/m/n=0.365 %计算二值图像中对象的总面积与整个面积的比是否大于 0.365d=imerode(d,se);%如果大于

10、0.365 则图像进行腐蚀elseif bwarea(d)/m/n=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=0m,n=size(d);left=1;wide=0;while sum(d(:,wide+1)=0wide=wide+1;endif widey2flag=1;word1=temp; % WORD 1endd(:,1:wide)=0;d=qiege(d);e

11、ndend% 分割出第二个字符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);subplot(2,7,1),imshow(word1),title(1);subplot(2,7,2),imshow(word2),title(2);subplot(2,7,3),imshow(word3),title(

12、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);% 商用系统程序中归一化大小为 40*20,此处演示word1=imresize(word1,40 20);word2=imresize(word2,40 20);word3=imresize(word3,40 20);word4=imresize(word

13、4,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),imshow(word3),title(3);subplot(2,7,11),imshow(word4),title(4);subplot(2,7,12),imshow(word5),title(5);subplot(2,7,13

14、),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.jpg);imwrite(word7,7.jpg);运行结果如下:(三)车牌识别(三)车牌识别:模板匹配是图象识别方法中最具代表性的基本方法之一,它是将从待识别的图象或图象区域f(i,j)中提取的若干特征量与模板T(i,j)相应的

15、特征量逐个进行比较,计算它们之间规格化的互相关量,其中互相关量最大的一个就表示期间相似程度最高,可将图象归于相应的类。也可以计算图象与模板特征量之间的距离,用最小距离法判定所属类。此处采用相减的方法来求得字符与模板中哪一个字符最相似,然后找到相似度最大的输出。汽车牌照的字符一般有七个,大部分车牌第一位是汉字,通常代表车辆所属省份,紧接其后的为字母与数字。车牌字符识别与一般文字识别在于它的字符数有限,汉字共约 50 多个,大写英文字母 26 个,数字 10 个。为了实验方便,结合本次设计所选汽车牌照的特点,只建立了 7 个数字 26 个字母与 10 个数字的模板。其他模板设计的方法与此相同。首先

16、取字符模板,接着依次取待识别字符与模板进行匹配,将其与模板字符相减,得到的 0 越多那么就越匹配。把每一幅相减后的图的 0 值个数保存,即为识别出来的结果。识别的流程图如下所示:建立自动识别的代码表读取分割出来的字 符第一个字符与模板中 的汉字模板进行匹配第二个字符与模板中 的字母模板进行匹配待识别字符与模板字符相减,值越小相似度 越大,找到最小的一个即为匹配的最好的识别完成,输出此模板对应值后 5 个字符与模板中的字 母与数字模板进行匹配源代码如下:liccode=char(0:9 A:Z 苏豫陕鲁京辽浙); %建立自动识别字符代码表 SubBw2=zeros(40,20);l=1;for

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号