​目 录
一. 课程设计任务 1
二. 课程设计原理及设计方案 2
三. 课程设计的步骤和结果 3
四. 课程设计总结 4
五. 设计体会 5
六. 参考文献 6
设计任务
在交通管理过程中,通常采用视频监控方式对闯红灯和超速等违章车辆进行监督。对违章车辆,需要自动检测车牌信息,提取车牌号码,以便查找车主信息和监督管理。国内常用的一般车牌通常是是蓝底白字,长宽比3:1。
1、对车牌图像进行预处理,然后进行车牌定位;
2、进行字符分割;
2、对车牌中的数字、字母和汉字进行提取和识别;
3、要求自行设计方案、编写代码实现上述功能,并设计车牌识别的软件界面。
一. 设计原理及设计方案
1.系统简述
一个完整的车牌识别系统闭应包括车辆检测、图像采集、图像预处理、车牌定位、字符分割、字符识别等单元。当车辆到达触发图像采集单元时,系统采集当前的视频图像。车辆识别单元对图像进行处理,定位出牌照位置,再将车牌中的字符分割出来进行识别,然后组成车牌号码输出。车牌识别系统原理如图l所示。

(1)图像预处理:对汽车图像进行图像转换、图像增强和边缘检测等。
(2)车牌定位:从预处理后的汽车图像中分割出车牌图像。即在一幅车辆图像中找到车牌所在的位置。
(3)字符分割:对车牌图像进行几何校正、去噪、二值化以及字符分割以从车牌图像中分离出组成车牌号码的单个字符图像
(4)字符识别:对分割出来的字符进行预处理(二值化、归一化),然后分析提取,对分割出的字符图像进行识别给出文本形式的车牌号码。
为了用于牌照的分割和牌照字符的识别,原始图象应具有适当的亮度,较大的对比度和清晰可辩的牌照图象。但由于该系统的摄像部分工作于开放的户外环境,加之车辆牌照的整洁度、自然光照条件、拍摄时摄像机与牌照的矩离和角度以及车辆行驶速度等因素的影响,牌照图象可能出现模糊、歪斜和缺损等严重缺陷,因此需要对原始图象进行识别前的预处理。
牌照的定位和分割是牌照识别系统的关键技术之一,其主要目的是在经图象预处理后的原始灰度图象中确定牌照的具体位置,并将包含牌照字符的一块子图象从整个图象中分割出来,供字符识别子系统识别之用,分割的准确与否直接关系到整个牌照字符识别系统的识别率。
由于拍摄时的光照条件、牌照的整洁程度的影响,和摄像机的焦距调整、镜头的光学畸变所产生的噪声都会不同程度地造成牌照字符的边界模糊、细节不清、笔划断开或粗细不均,加上牌照上的污斑等缺陷,致使字符提取困难,进而影响字符识别的准确性。因此,需要对字符在识别之前再进行一次针对性的处理。
车牌识别的最终目的就是对车牌上的文字进行识别。识别方法目前主要有基于模板匹配算法和基于人工神经网络算法。
2.图像预处理

2.1灰度变换
输入的彩色图像包含大量颜色信息,会占用较多的存储空间,且处理时也会降低系统的执行速度,因此对图像进行识别等处理时.常将彩色图像转换为灰度图像,以加快处理速度。可对图像进行灰度化处理、提取背景图像、增强处理、图像二值化,边缘检测、滤波等处理。然后采用robert算子进行边缘检测,再用imopen和imclose对所得二值图像作开、闭操作进行滤波。
彩色图像分为R、G、B三个分量,分别显示出红、绿、蓝等各种颜色,灰度化就是使彩色的R、G、B 分量相等的过程。灰度值大的像素点比较亮(像素值最大为255,为白色) ,反之比较暗(像素值最小为 0,是黑色) 。
图像灰度化的算法主要有以下 3 种:
1)最大值法:使转化后R、G、B的值等于转化前 3 个值中最大的一个,即:R=G=B=max(R,G,B),这种方法转换的灰度图亮度很高。
2)平均值法:使转化后R、G、B的值为转化前R、G、B的平均值 R=G=B=(R+G+B)/3 这种方法产生的灰度图像比较柔和。
3)加权平均值法:按照一定的权值,对R、G、B的值加权平均。
2.2边缘提取
数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域十分重要的基础。边缘是图像的重要特征,图像理解和分析的第一步往往就是边缘检测。目前,边缘检测已成为计算机视觉研究领域最活跃的课题之一,在工程应用中占有十分重要的地位。车牌的一个重要特征就是在该区域存在大量的边缘信息,所以边缘检测对于我们进行车牌识别来说也是相当重要的。
边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,如灰度值的突变、颜色的突变、纹理结构的突变等,同时边缘也是不同区域的分界处。图像边缘有方向和幅度两个特性,通常沿边缘的走向灰度变化平缓,垂直于边缘走向灰度变化剧烈。由于边缘是图像上灰度变化最剧烈的地方,传统的边缘检测就利用这个特点,通过计算图像中像素的梯度值来确定边缘点。
常用的图像边缘提取算子有Roberts算子、sobel算子、Prewitt算子、Laplacian算子等,它们的模板分别如下:


3.车牌定位
自然环境下,汽车图像背景复杂,光照不均匀,在自然背景中准确地确定牌照区域是整个图像识别过程中的关键。首先对采集到的图像进行大范围相关搜索,找到符合汽车牌照特征的若干区域作为候选区,然后对这些侯选区域做进一步分析、评判,最后选定一个最佳区域作为牌照区域。将其从图像中分割嘲出来,同时要考虑车牌倾斜问题。算法流程如下:
(1)对二值图像进行区域提取。计算并比较区域特征参数,提取车牌区域。进行闭运算,可使得水平相邻的边缘连接成为连通区域;进行开运算可使得车牌区域与其它背景区域分开,成为独立的连通域。
(2)计算包含所标记区域的最小宽和高。并根据先前知识,提取并显示更接近的车牌二子值图。
(3)通过计算车牌旋转角度解决车牌倾斜问题。由于车牌倾斜导致投影效果峰谷不明显,需车牌矫正处理,采取线性拟合方法,计算出车牌上边或下边图像值为1的点拟合直线与水平X轴的夹角。
4.字符分割
完成牌照区域的定位后,再将牌照区域分割为单个字符,可采用垂直投影法。由于字符在垂直方向上的投影必然在字符间或字符内的间隙处取得局部最小值.并且该位置应满足牌照的字符书写格式、字符、尺寸限制等条件。利用垂直投影法实现复杂环境下汽车图像中的字符分割效果较好。
通过分析计算字符的水平投影和垂直投影,可获得车牌字符高度、字符顶行与尾行、字符宽度、每个字符的中心位置,以方便提取分割字符。然后计算车牌垂直投影,去掉车牌垂直边框,获取车牌及字符平均宽度。最后计算车牌每个字符的中心位置和最大字符宽度,提取分割字符,其算法流程如图3所示。

此处采用的方法为寻找连续有文字的块,若长度大于某阈值,则认为该块有两个字符组成,需要分割。算法如下:

5.字符识别
字符识别方法主要有基于模板匹配算法和基于人工神经网络算法。基于模板匹配算法是首先将分割后的字符二值化,并将其尺寸缩放为字符数据库中模板的大小,然后与所有模板进行匹配,最后选取最佳匹配作为结果。建立数字库对该方法在车牌识别过程中很重要,数字库准确才能保证检测出的数据正确。基于人工神经元网络的算法有两种,一种是先对特征提取待识别字符,然后用所获得的特征训练神经网络分配器;另一种是直接将待处理图像输入网络由网络自动实现特征提取直至识别结果。模板匹配实现简单,当字符较规整时,对字符图像的缺损、污迹干扰适应力强且识别率高。因此,这里将模板匹配作为车牌字符识别的主要方法。
模板匹配是图象识别方法中最具代表性的基本方法之一,它是将从待识别的图象或图象区域f(i,j)中提取的若干特征量与模板T(i,j)相应的特征量逐个进行比较,计算它们之间规格化的互相关量,其中互相关量最大的一个就表示期间相似程度最高,可将图象归于相应的类。也可以计算图象与模板特征量之间的距离,用最小距离法判定所属类。然而,通常情况下用于匹配的图象各自的成像条件存在差异,产生较大的噪声干扰,或图象经预处理和规格化处理后,使得图象的灰度或像素点的位置发生改变。在实际设计模板的时候,是根据各区域形状固有的特点,突出各类似区域之间的差别,并将容易由处理过程引起的噪声和位移等因素都考虑进去,按照一些基于图象不变特性所设计的特征量来构建模板,就可以避免上述问题。

一. 步骤和结果
此处以车牌1作为示例图像

  1. 获取图像
    [fn,pn,fi]=uigetfile(’*.bmp’,‘选择图片’);
    Scolor=imread([pn fn]);

  1. 图像灰度化
    Sgray = rgb2gray(Scolor);%rgb2gray转换成灰度图


3. 图像增强
s=strel(‘disk’,13);%strei函数13
Bgray=imopen(Sgray,s);%打开sgray s图像
Egray=imsubtract(Sgray,Bgray);%两幅图相减


4. 边缘提取
图像中车辆牌照是具有比较显著特征的一块图象区域,这此特征表现在:近似水平的矩形区域;其中字符串都是按水平方向排列的;在整体图象中的位置较为固定。正是由于牌照图象的这些特点,再经过适当的图象变换,它在整幅中可以明显地呈现出其边缘。边缘提取是较经典的算法,此处边缘的提取采用的是Roberts算子。
grd=edge(Egray,‘robert’,0.09,‘both’);
se=[1;1;1]; %线型结构元素
I3=imerode(grd,se); %腐蚀图像

  1. 开闭运算进行滤波
    牌照图象经过了以上的处理后,牌照区域已经十分明显,而且其边缘得到了勾勒和加强。此时可进一步确定牌照在整幅图象中的准确位置。这里选用数学形态学的方法,基本思想是用具有一定形态的机构元素去量度和提取图像中的对应形状以达到对图像分析和识别的目的。数学形态学的应用可以简化图像数据,保持它们基本的形态特征,并除去不相干的结构。在本程序中用到了开闭两个基本运算,最后还用了bwareaopen来去除对象中不相干的小对象。
    bg1=imclose(I3,strel(‘rectangle’,[8,18]));%取矩形框的闭运算即平滑8,18
    bg3=imopen(bg1,strel(‘rectangle’,[8,14]));%取矩形框的开运算8,18
    bg2=bwareaopen(bg3,700);%去除聚团灰度值小于700的部分


6. 车牌初步定位
通过比较累计行像素灰度值和列像素灰度值确定车牌的真实位置。
[y,x,]=size(bg2);
I6=double(bg2);
%绘制行曲线图
Y1=zeros(y,1);%y行1列的零矩阵 累计行像素灰度值
for i=1:y
for j=1:x
if(I6(i,j,1)==1)
Y1(i,1)= Y1(i,1)+1;
end
end
end
[temp, MaxY]=max(Y1);
PY1=MaxY;
while ((Y1(PY1,1)>=50)&&(PY1>1))
PY1=PY1-7;
end
PY2=MaxY;
while ((Y1(PY2,1)>=50)&&(PY2<y))
PY2=PY2+7;
end
%绘制列曲线图
X1=zeros(1,x);% 累计列像素灰度值
for j=1:x
for i=PY1:PY2
if(I6(i,j,1)==1)
X1(1,j)= X1(1,j)+1;
end
end
end
PX1=1;
while ((X1(1,PX1)❤️)&&(PX1<x))
PX1=PX1+1;
end
PX2=x;
while ((X1(1,PX2)❤️)&&(PX2>PX1))
PX2=PX2-1;
end
DW=Scolor(PY1:PY2,PX1:PX2,:);%车牌定位后图像


7. 进一步车牌定位
经过上述方法分割出来的车牌图像中存在目标物体、背景还有噪声,要想从图像中直接提取出目标物体,最常用的方法就是设定一个阈值T,用T将图像的数据分成两部分:大于T的像素群和小于T的像素群,即对图像二值化。然后通过行像素点的累计值去除顶端和底端不感兴趣的地方。
if isrgb(DW)
I1 = rgb2gray(DW); %将RGB图像转化为灰度图像
else I1=DW;
end
g_max=double(max(max(I1)));
g_min=double(min(min(I1)));
T=round(g_max-(g_max-g_min)/3); % T 为二值化的阈值
[m,n]=size(I1);% d:二值图像
imane_bw=im2bw(I1,T/256); %二值化车牌图像
[y1,x1,z1]=size(imane_bw);
I3=double(imane_bw);
TT=1;
%%%%%%%去除图像顶端和底端的不感兴趣区域%%%%%
Y1=zeros(y1,1);
for i=1:y1
for j=1:x1
if(I3(i,j,1)==1)
Y1(i,1)= Y1(i,1)+1 ;
end
end
end
Py1=1;Py0=1;
while ((Y1(Py0,1)<9)&&(Py0<y1))
Py0=Py0+1;
end
Py1=Py0;
while((Y1(Py1,1)>=9)&&(Py1<y1))
Py1=Py1+1;
end
I2=imane_bw(Py0:Py1,:

MATLAB车牌识别GUI设计实现相关推荐

  1. matlab车牌识别课程设计,matlab车牌识别课程设计报告模板(附源代码).doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp计算机&nbsp>&nbspmatlab matlab车牌识别课程设计报告模板(附源代码). ...

  2. 【Matlab车牌识别】停车计费系统【含GUI源码 735期】

    一.代码运行视频(哔哩哔哩) [Matlab车牌识别]停车计费系统[含GUI源码 735期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 蔡利梅.MATLA ...

  3. matlab 车牌图识别,基于MATLAB车牌图像识别的设计与实现(附答辩记录)

    基于MATLAB车牌图像识别的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期报告,毕业论文15000字,代码) 摘  要:车牌照识别是图像识别领域的重要研究课题.运用MATLAB对车 ...

  4. matlab中liccode函数,基于matlab车牌识别系统设计与实现(最终版)

    <基于matlab车牌识别系统设计与实现.doc>由会员分享,可在线阅读全文,更多相关<基于matlab车牌识别系统设计与实现(最终版)>请在www.woc88.com上搜索. ...

  5. Matlab车牌识别停车场车辆进出管理系统

    Matlab车牌识别&停车场车辆进出管理系统 数字图像处理期末报告 1.源码文件 2.GUI主界面 3.车牌识别结果 4.GUI停车场管理系统 5.源码下载 后续视频讲解 数字图像处理期末报告 ...

  6. 基于matlab车牌识别程序,基于MATLAB车牌识别系统设计

    基于MATLAB车牌识别系统设计(任务书,开题报告,毕业论文11200字) 摘要 社会的不断发展带动着经济也不断的增长,从而也提高了人们的生活水平.汽车的需求量也日渐增加,现代化交通管理的出现,解决了 ...

  7. matlab车牌识别代码项目

    由于车牌识别涉及到计算机视觉和图像处理等领域,因此需要涉及到一些专业知识和技能.以下是一些基本步骤和参考代码: 步骤: 读取图像文件并进行预处理(如调整图像大小.灰度化.二值化等). 提取车牌区域,即 ...

  8. 【开源分享】基于Python+OpenCV+PyQt5车牌识别(GUI界面)

    亲测无错:基于Python+OpenCV+PyQt5车牌识别(GUI界面)绝对可以用的!!!!! 基于Python+OpenCV+PyQt5车牌识别(GUI界面) 参考文档

  9. MATLAB车牌识别(含GUI,语音播报)

    GUI框架源码: https://download.csdn.net/download/weixin_44748303/12682333 一.设计原理及设计方案 1.系统简述 一个完整的车牌识别系统闭 ...

  10. 毕设题目:Matlab车牌识别

    1 车牌识别系统设计与实现 车牌识别系统主要分为三部分:车牌图像预处理.特征提取以及基于BP神经网络对特征进行训练和分类,流程图如图1所示. 图1 车牌识别系统组成示意图 2 车牌图像预处理 车牌图像 ...

最新文章

  1. 干货丨达沃斯群英纵论人工智能,核心观点汇总
  2. Redis多机功能之复制
  3. 结合zxing 和zbar 扫一扫
  4. MySQL 异常:这一篇就够了,MySQL 抛出异常的几种常见解决方式小结
  5. css背景图background - 多背景定义
  6. 9月26日发布?一加7T系列被“扒光”:硬核到没朋友
  7. Jquery学习总结(1)——Jquery常用代码片段汇总
  8. 如何使用移动硬盘加密
  9. 中国聚乙烯醇缩丁醛(PVB)树脂市场趋势报告、技术动态创新及市场预测
  10. 第2章:Maven的安装/2.1 Window下的安装
  11. Tolerance (定义发票允差)
  12. Bing Maps进阶系列二:使用GeocodeService进行地理位置检索
  13. DB2远程链接数据库编目命令代码
  14. IDAPython 让你的生活更滋润 part1 and part2
  15. Web前端和后端之区分
  16. SPI读取NRF24L01
  17. jQuery特效,网站模板,商城模板,网页特效各种前端源码免费下载
  18. 车企常用架构、通信设计、需求管理工具全汇总
  19. 用 word2vec 进行文档聚类
  20. activiti-explorer stencilset.json 国际化文件

热门文章

  1. 互联网日报 | 7月11日 星期日 | 市场监管总局禁止虎牙斗鱼合并;北京我爱我家部分门店闭店一周;寒武纪入局自动驾驶芯片...
  2. 串口和TCP测试工具
  3. android常用代码合集,Android开发常用经典代码段集锦
  4. IDEA合并SVN分支代码到主干
  5. 商务与经济统计学习笔记整理/安德森/第13版
  6. 莫烦 pytorch
  7. PHP常用函数归类总结【大全】
  8. FlexSim软件PF模块标识详细解释
  9. linux使用进程抓包,netstat、Linux下抓包
  10. android 获取机顶盒ip,在电视机顶盒端查看IP地址 - 零成本让你的电视盒子变身无线路由器...