(完整版)基于数字图像处理的车牌识别本科毕业论文

 时间:2017-08-28 17:07:20 贡献者:赵春艳

导读:本科生毕业论文(设计)题 姓 名: 学 院: 专 业: 班 级: 学目:基于数字图像处理的车牌识别设 计 周金鑫数理与信息工程学院电子信息工程111号: 指导 教 师: 教授 刘纯利 职称 :2014年 12 月24 日

增强复原,匹配描述识别3个部分,常见的处理有图像数字化,图像编码
增强复原,匹配描述识别3个部分,常见的处理有图像数字化,图像编码

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

号: 指导 教 师: 教授 刘纯利 职称 :2014年 12 月24 日安徽科技学院教务处制目录摘要 ....................................................................关键词 ..................................................................1、设计目的 .............................................................2、设计原理: ............................................................3、设计步骤: ............................................................4、实行方案 .............................................................4.1. 总体实行方案: ...................................................4.2. 各模块的实现: ...................................................4.2.1 输入待处理的原始图像: .......................................4.2.2 图像的灰度化并绘制直方图: ...................................

4.2.3 边缘检测 ....................................................4.2.4 图像的腐蚀操作: ............................................4.2.5 平滑图像 ....................................................4.2.6 除去二值图像的小对象 ........................................4.3 车牌定位 .........................................................4.4 字符的分割与识别 ..................................................4.4.1.车牌的再处理 ................................................4.4.2 字符分割 ....................................................4.5 车牌识别:........................................................5、总结: ................................................................6、致谢 .................................................................7、参考文献: ............................................................基于数字图像处理的车牌识别设计电子信息工程专业学生 指导教师 周金鑫 刘纯利摘要:车牌识别在人类社会交通系统中担当重要角色,一个设计优良 的车牌识别系统会给人们生活带来极大的方便,本文通过运用 matlab 和 数字图像处理的一些知识简单通过图像预处理,车牌定位,字符分割,采 用模板匹配法实现车牌字符的识别。

关键词 : 图像预处理 边缘处理 字符分割 字符识别1、设计目的

车牌识别系统主要是为了辨别所拍图片中的车牌部分,以此识别车 辆。

通过车牌识别系统的设计,来实现经过我校西大门的车辆的识别。

2、设计原理:设计的原理主要如下图所示:3、设计步骤:流程图如下:4、实行方案4.1. 总体实行方案: 用摄像机获取自然环境下的汽车彩色图像,将彩色图像用 matlab 软件处理成灰度图像并绘制直方图,然后进行边缘检测 图像的腐蚀,平滑图像以及去除二值图像的小对象等操作,再 进行车牌的定位和字符分割与识别最终达到识别车牌照的目 的。

4.2. 各模块的实现:

4.2.1 输入待处理的原始图像: I=imread(‘car.jpg'); imshow(I);%显示车牌的原始图片,结果如下:图 4.2.1 原始图像 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(' 灰度图直方图 ');% 绘制灰度图

和直方图 显示结果图像如下:图 4.2.2 灰度化并绘制直方图 picture2 4.2.3 边缘检测 边缘是一定存在在两个拥有不一样灰度值的相邻的区域之间的,是灰 度值不连续的一种表现,也是分割图象、纹理和形状特征提取等图像分析 的基础。

本文用 Roberts 算子来实现边缘检测,他是一种利用局部差分算 子寻找边缘的算子,Robert 算子图像处理后结果边缘不是很平滑,当然还 需要后续的腐蚀,平滑图像以及去除二值图像的小对象操作来提高精度。

由于阈值越小检测的边缘越丰富, 结合选取的灰度图选择阈值为 0.16 较为合适。

用 roberts 算子实行边缘检测: I2=edge(I1,'roberts',0.16,'both'); imshow(I2);title('roberts operator edge detection image'); 结果如下:图 4.2.3 边缘检测 picture3 4.2.4 图像的腐蚀操作: 腐蚀操作就是通过不断的删除图片上的像素, 将图片缩小, 以此来达到去 除小点状图形的效果。

se=[1;1;1]; I3=imerode(I2,se);%图像腐蚀操作 imshow(I3);title('corrosion image');

图 4.2.4 图像腐蚀操作 picture44.2.5 平滑图像 图像平滑是去掉图像中的高频信息,使图像变的模糊,噪声一般都是高 频信息,平滑的过程也就意味着除去图片噪声的过程。

se=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 除去二值图像的小对象 picture6 4.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) %若 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)&&(PY1>1)) PY1=PY1-1; end PY2=MaxY; while ((Blue_y(PY2,1)>=5)&&(PY2

end end endPX1=1; while ((Blue_x(1,PX1)<3)&&(PX1PX1)) PX2=PX2-1; end PX1=PX1-1;%车牌区域校正 PX2=PX2+1; dw=I(PY1:PY2-8,PX1:PX2,:); t=toc; subplot(1,2,1),imshow(IY),title('Line direction areas');% 车 牌行方向区域的确定 subplot(1,2,2),imshow(dw),title('positioning images');%车牌已经定位后的区域显示如下: color

图 4.3.1 车牌的定位 picture7 4.4 字符的分割与识别 4.4.1.车牌的再处理 划分彩色图像需经过灰度变换,二值化,均值滤波,腐蚀和膨胀到一 个字符,并对分割字符进二值化、归一化等图像预处理使车牌图像的车牌 号字符分割构成隔离,然后分析识别已经分割字符识的图像并用文本的车 牌号的形式呈现出来。

代码显示如下: imwrite(dw,'dw.jpg');%把彩色车牌写入 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 plate.jpg'); subplot(3,2,2),imshow(d),title('before licence plate') %均值滤波之前 % 滤波 h=fspecial('average',3); %模板的尺寸:3*3,average:均值滤波,建立滤波算子 d=im2bw(round(filter2(h,d)));%用指定的滤波器 h 然后对其均值滤 波即进行 d imwrite(d,'after average licence plate.jpg'); subplot(3,2,3),imshow(d),title('after average licence plate') % 操作某些图象 % 膨胀或腐蚀 % se=strel('square',3); %图片膨胀处理 filtering binary% '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);%假如小于即实现膨胀操作 end imwrite(d,'expansion or corrosion the licence plate.jpg'); subplot(3,2,4),imshow(d),title('expansion or corrosion the licence plate'); 运行结果显示如下:图 4.4.1 字符分割与识别 picture8

4.4.2 字符分割 字符分割就是把已经定位好的车牌区域上的字符分别提取出来, 我们 知道中国的车牌上字符之间是存在间隙的, 就是利用这个间隙来实现我们 对定位区域的车牌分割, 通过搜索连续在一起的字符块, 若长度高于某一 阈值, 则为两个字符组成, 要分割, 对分割好的字符再进行归一化的处理。

%搜索连续在一起的字符块,若长度高于某一阈值,则为两个字符组 成,要分割,对分割 %建立子函数 qiege、getword,调用子程序,分割车 牌字符并做归一化的处理 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<=n-1 j=j+1; end k2=j-1; if k2-k1>=round(n/6.5) [val,num]=min(sum(d(:,[k1+5:k2-5]))); d(:,k1+num+5)=0; end % 分割车牌字符

end % 进一步切割 d=qiege(d); % 切割出 7 七个字符 y1=10;y2=0.25;flag=0;word1=[]; while flag==0 [m,n]=size(d); left=1;wide=0; while sum(d(:,wide+1))~=0 wide=wide+1; end if widey2 flag=1;word1=temp; end d(:,[1:wide])=0;d=qiege(d); end % WORD 1

end % 分割出第二个字符 [word2,d]=getword(d); % 分割出第三个字符 [word3,d]=getword(d); % 分割出第四个字符 [word4,d]=getword(d); % 分割出第五个字符 [word5,d]=getword(d); % 分割出第六个字符 [word6,d]=getword(d); % 分割出第七个字符 [word7,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); % 取 40*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),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.jpg'); imwrite(word7,'7.jpg'); 运行结果显示如下:

图 4.4.2 字符分割 picture9 4.5 车牌识别: 在此采用相减的模板匹配法来判断字符和模板中哪一个字符最接 近,再找到相似度最高的字符作为输出结果。

通常车辆牌照的字符有 7 个,一般第一位是汉字,表示车辆所属的省份,而后的为字母和数字。

车牌字符的识别较一般文字识别要简单些, 主要是它的字符数是有限的, 汉字一共约 50 多个,大写英文字母 26 个,数字 10 个。

出于实验运算 方便的考虑,本文仅建立了 7 个汉字 26 个字母与 10 个数字的模板。

其 他的模板算法与之相同。

第一步取字符模板,第二步依次取待识别字符与模板进行匹配,第

三步将选中的字符与模板字符相减,得到的零越多也即就越匹配。

第四 步每一幅相减后的图的零值的个数都要保存,并作为识别出来的结果。

识别的流程图显示如下: 源代码显示如下: liccode=char(['0':'9' 'A':'Z' '皖豫苏鲁京沪津']); 识别字符代码表 SubBw2=zeros(40,20); l=1; for I=1:7 ii=int2str(I); t=imread([ii,'.jpg']); SegBw2=imresize(t,[40 20],'nearest'); SegBw2=double(SegBw2)>20; if l==1 kmin=37; kmax=43; elseif l==2 kmin=11; kmax=36; else l>=3 kmin=1; kmax=36; %第三位后面识别字母或数字 %第二位 A~Z 字母的识别 %第一位汉字的识别 %建立自动end

基于数字图像处理的车牌识别大学本科毕业论文 基于数字图像处理的车牌识别本科毕业论文 (精品)基于数字图像处理的车牌识别本科毕业论文 基于图像的车牌自动识别处理系统本科毕业论文 基于数字图像处理的车牌识别毕业论文 (完整版)基于数字图像处理的车牌识别本科毕业设计 基于数字图像处理的车牌识别本科毕业设计 (精品)基于数字图像处理的车牌识别本科毕业设计 【最新版】基于数字图像处理的车牌识别本科毕业设计
计算机专业论文题目数字图像车牌识别论文数字图像处理课程论文数字图像处理参考文献数字图像处理技术论文数字图像处理车牌识别数字图像车牌识别论文计算机专业论文题目数字图像处理课程论文数字图像处理参考文献数字图像处理技术论文数字图像处理车牌识别数字图像处理小论文数字图像处理论文数字图像处理应用实例数字图像处理大作业毕业论文研究方法 步骤及措施 申请退出团委会申请书怎么写 学生会申请书 中专 劳动仲裁申请书收到后 入党申请书2018年最新版 华美女头像 小学生关于环保的图片 中国古代地图图片大全 仿欧式客厅装修效果图片 姓氏朱动漫头像