车牌识别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 ...
随机推荐
- WebDev.WebServer40.exe已停止工作
今天写程序的遇到这个错误 错误的原因是代码中有死循环
- .NET中如何使用反序列化JSON字符串/序列化泛型对象toJsonStr
在进行 .NET Web MVC 框架开发的网站程序的时候,我们都会遇到最关键的问题,数据传输. .NET MVC 4中的ControllerBase类建议我们用ViewBag动态数据字典形式(t ...
- JAVA类与对象(三)----类定义关键字详解
static 表示静态,它可以修饰属性,方法和代码块. 1.static修饰属性(类变量),那么这个属性就可以用类名.属性名来访问,也就是使这个属性成为本类的类变量,为本类对象所共有.这个属性就是全类 ...
- NodeJS - Express 4.0下使用app.dynamicHelpers错误
在NodeJS - Express 4.0下使用app.dynamicHelpers发生错误: app.dynamicHelpers({ ^ TypeError: Object function (r ...
- 团队项目之NABC
Time:2013-10-22 Author:wang 一个成功的人,总是知道如何管理自己的时间,如何让自己的时间得到最充分最有效的利用.对学生一族而言,课业负担重,各种课程.各种活动.各种社团,如果 ...
- SVN学习
一.SVN在线安装(Eclipse) 步骤1: 步骤2 其中http://subclipse.tigris.org/update_1.10.x是最新版本的SVN插件的下载站点[subclipse是Ec ...
- java url中文参数乱码问题
http://www.blogjava.net/jerry-zhaoj/archive/2009/07/16/286993.html 转 JAVA 中URL链接中文参数乱码的处理方法JAVA 中URL ...
- google chrome 32 升级变更找回user agent(google chrome lose user agent)
chrome32中user agent 找不着了?没关系,看我画的图吧.为什么是英文的,国际化嘛...
- Codeforces Round #321 (Div. 2) D. Kefa and Dishes 状压dp
题目链接: 题目 D. Kefa and Dishes time limit per test:2 seconds memory limit per test:256 megabytes 问题描述 W ...
- HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学。今天测试组开完会后,他又发话了:在古老的一维模式识别中,常常需要计算连续子向量的最大和,当向量全为正数的时候,问题很好解决。但是,如果向量中包含负数,是否应该包含某个负数,并期望旁边的正数会弥补它呢?例如:{6,-3,-2,7,-15,1,2,2},连续子向量的最大和为8(从第0个开始,到第3个为止)。你会不会被他忽悠住?
// test02.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...