车牌识别LPR(四)-- 车牌定位
第四篇:车牌定位
车牌定位就是采用一系列图像处理或者数学的方法从一幅图像中将车牌准确地定位出来。车牌定位提取出的车牌是整个车牌识别系统的数据来源,它的效果的好坏直接影响到整个系统的表现,只有准确地定位出车牌,才会有后续的车牌分割与字符识别。
目前车牌定位有两大类、基于灰度、基于彩色。
基于灰度:
我们采用的是基于灰度的形态学的车牌定位:首先根据车牌区域中丰富的纹理特征,提取车牌图像中垂直方向的边缘并二值化。然后对得到的二值图像进行数学形态学(膨胀、腐烛、幵闭运算等)的运算,使得车牌区域形成一个闭合的连通区域。最后通过车牌的几何特征(高、宽、宽高比等)对得到的候选区域进行筛选,最终得到车牌图像。
基于灰度的还有边缘检测的车牌定位:由于车牌字符的灰度值与车牌底色的灰度值相差较大,字符与底色的交界处就有灰度突变,灰度突变处就会产生边缘,这是车牌定位技术中非常重要的特征。也可以通过检测车牌的外边框来定位车牌,由于外边框的上下左右四边都为直线,而且有明显的边缘特征,所以首先利用边缘检测算法提取车牌边框位置,然后,用Hough变换算法检测直线,确认外边框的上下左右四条边位置就确定了车牌在图像中的位置。
基于投影法的车牌定位方法:首先对车牌图像进行二值化,由于车牌区域存在明显的剧烈的字符与背景的灰度跳变,将跳变次数投影到垂直轴上,那么车牌区域对应的垂直轴上会有一个明显的峰值,这样可以得到车牌的上下边界。然后对上下边界内的区域进行水平投影,字符区域会出现明显的峰值,这样可以得到车牌的左右边界。这种方法比较理想化。
基于纹理分析的车牌定位方法:所谓的纹理特征是指对图像进行扫描得到的灰度变化曲线,由于扫描经过车牌得到的变化曲线明显不同于经过非车牌得到的曲线,根据这个特点再结合形态学操作和其它先验知识就能从图像中提取出车牌。
基于彩色的:
从颜色空间的角度来看,HSV (Hue色调,Saturation饱和度,Value亮度)颜色空间具有线性伸缩性,比RGB颜色空间更容易区分色彩。HSV车牌定位典型的思路是首先将车牌图像从RGB空间转换到HSV空间,然后寻找图像中含有蓝白相间、黄黑相间、白红相间和白黑相间的地方,对得到的候选区域进一步用字符颜色提取车牌字符,最后用车牌的字符特征确定车牌位置。基于彩色图像的车牌定位方法对字符颜色和背景颜色固定的车牌可以取得较好的效果。
基于彩色图像的边缘检测和区域生长相结合的车牌定位:实现该方法的基本思想是:首先可以利用边緣检测算子对原始彩色(RGB空问)图像进行边缘检测,使得车牌区域的纵向纹理特征得到增强;接着利用数学形态学中的膨胀算法实现区域的连通,然后采用区域生长的方法对候选区域进行标记,最后利用车牌具有的特征和字符排列的频率特点,去除伪车牌区域,得到车牌区域。
基于纹理和颜色综合特征的车牌定位:首先将原始彩色图像M0的颜色空间转化到HSV颜色空间Ml;接着对Ml进行色彩分割,把所需要的颜色的区域设置为前景白色,其他区域设为背景黑色,此时得到图像M2,其次对M2采用区域生长的方法进行处理,并生成连通区域,得到车牌区域的集合A,然后若集合A中不包含车牌,则继续对Ml进行色彩分割,提取下一块前景颜色区域,并对该区域进行车牌特征分析,重复上述过程。
车牌轮廓特征判断条件:
(1)外接轮廓的高度大于5个像素或小于25个像素
(2)外接轮廓的宽度大于20个像素或小于80个像素
(3)外接轮廓的宽高比大于2或小于10
由于我国车牌种类繁多,颜色组合不一致,会遇到以下问题:一方面各地发放的车牌的底色色调会有所不同,另一方面受自然光照变化影响,采集到车牌图像的色度的变化范围也很大。因此,定位我国车牌的方法不适宜直接利用颜色信息进行定位。
其实,还有一些文献里提出支持向量机和adaboost等分级分类的定位方法,虽然使用训练的方法可以很准确的得到车牌图像,但是实际中由于环境的复杂性,单纯的一种方法并不不能得到很好的结果。对图像进行预处理,结合三次定位,像素统计粗定位,颜色阈值定位,文理特征定位,一次次的精确定位结果,调整参数,知道得到正确的车牌图像。
这里有涉及到边缘检测的应用,其中边缘检测就有几种常用的算子方法。还涉及颜色空间的转换,这里不做具体展开。
车牌识别LPR(四)-- 车牌定位的更多相关文章
- 车牌识别LPR系统系列文章汇总
这里的LPR的的几篇文章是之前项目的一些相关资料的整理,涉及实验室内部的资料就没有放上来,希望能对想了解这方面的同学,有所帮助,那怕了解个大概也好.知道整体的思路就好.当初就是一个人瞎摸索,走了很多的 ...
- 车牌识别LPR(一)-- 研究背景
在年尾用了几天的时间将2014年的所有工作都总结了一遍,将之前的文档综合了下. 以下是LPR系统,车牌识别的一些总结资料. 第一篇:LPR研究背景 汽车的出现改变了以往出行徒步和以马代步的时代,极大地 ...
- 车牌识别LPR(三)-- LPR系统整体结构
第三篇:系统的整体架构 LPR系统大体上可由图像采集系统,图像处理系统,数据库管理系统三个子系统组成.它综合了通讯.信息.控制.传感.计算机等各种先进技术,构成一个智能电子系统. 图像采集系统:图像采 ...
- 车牌识别LPR(八)-- 字符识别
第八篇:字符识别 车牌定位.车牌倾斜校正.车牌字符分割都是为车牌字符识别做的前提工作,这些前提工作直接关系到车牌识别系统的性能.车牌字符识别是车牌识别系统的核心部分,车牌字符识别的准确率是衡量车牌识 ...
- 车牌识别LPR(二)-- 车牌特征及难点
第二篇:车牌的特征及难点 2.1 对我国车牌的认识 我国目前使用的汽车牌号标准是 2007 年开始实施的<中华人民共和国机动车号牌>GA36-2007(2010 年修订).根据 GA36 ...
- 车牌识别LPR(六)-- 字符分割
第六篇:字符分割 在知道了车牌字符的规律之后,可以根据车牌的特点对字符进行分割.一般最容易想到的方法就是根据车牌投影.像素统计特征对车牌图像进行字符分割的方法.是一种最常用的.最基本的.最简单的车牌字 ...
- 车牌识别LPR(七)-- 字符特征
第七篇:字符特征 选择的字符特征应该满足以下条件: (1)选取的字符特征具有较强的鲁棒性,不受字符变形.弯曲等影响. (2)两个字符的字符特征不能完全相同,但部分相同是允许的,即选择的字符特征是唯一的 ...
- 车牌识别LPR(五)-- 一种车牌定位法
该方法是某个文章中看到的,有点忘了是那一篇了,看的太多也太久了. Step1.把采集到的RGB图像转换为HSI图像. HSI模型能反映人对色彩的感知和鉴别能力,非常适合基于色彩的图像的相似比较,故采用 ...
- 模式识别之车牌识别---一个开源车牌识别项目easypr
http://doc.okbase.net/subconscious/archive/105312.html https://github.com/liuruoze http://www.cnblog ...
随机推荐
- POJ 3321 DFS序+线段树
单点修改树中某个节点,查询子树的性质.DFS序 子树序列一定在父节点的DFS序列之内,所以可以用线段树维护. 1: /* 2: DFS序 +线段树 3: */ 4: 5: #include < ...
- [原]项目进阶 之 持续构建环境搭建(三)Maven环境搭建
上次的博文项目进阶 之 持续构建环境搭建(二)Nexus私服器中,我们搭建了一个Nexus的maven私服,这次我们来重点讲解一下Maven的安装和配置.这里说明一下这次的环境搭建,比较基础,但却非常 ...
- 微软职位内部推荐-Senior SDE for Win Shell Exp
微软近期Open的职位: Job posting title: Senior Software Development Engineer Location: China, Beijing Divisi ...
- Oracle的substr函数简单用法
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
- Module模式 - 深入了解Javascript
/* Modelu模式 优点:效率高,代码少,加载速度快,松耦合允许并行加载,提升下载速度 缺点:初始化时间久一点 */ //一.基础用法 var calculate = function (eq) ...
- JSON-JObject
http://james.newtonking.com/json/help/index.html http://www.cnblogs.com/usharei/archive/2012/04/24/2 ...
- org.apache.commons.dbutils.QueryRunner 执行sqlserver的存储过程
执行不带输出参数的存储过程与 执行普通update sql没有什么区别,直接调用即可: 示例代码: public Boolean startResidentialInfoStatistics(Str ...
- angular事件代理
在angular中,是不支持事件代理的,有些时候,我们需要处理比较多的数据,尤其是一些列表的时候,可能会很多,如果给每一项都加事件的话,注定慢很多,为了解决这个事情,因此需要一个做事件代理的direc ...
- Hibernate各种主键生成策略与配置详解【附1--<generator class="foreign">】
1.assigned 主键由外部程序负责生成,在 save() 之前必须指定一个.Hibernate不负责维护主键生成.与Hibernate和底层数据库都无关,可以跨数据库.在存储对象前,必须要使用主 ...
- MemSQL Start[c]UP 2.0 - Round 2 - Online Round
搞到凌晨4点一个没出,要gg了. A. Golden System http://codeforces.com/contest/458/problem/A #include<cstdio> ...