该方法是某个文章中看到的,有点忘了是那一篇了,看的太多也太久了。

Step1、把采集到的RGB图像转换为HSI图像。

  HSI模型能反映人对色彩的感知和鉴别能力,非常适合基于色彩的图像的相似比较,故采用HSI模型。假设HSI颜色模型各分量为H、S、I ,RGB 彩色模型的各个分量为 R,  G ,B ,则 RGB 转换 HSI 的公式为:

  其中H 表示色调,如红色、绿色、蓝色等,色调的取值范围为 [0 , 360],其对应颜色轮的角度。S表示饱和度,其意义是颜色的鲜艳度,可以用百分比来表示,从0%到完全饱和100%。 I表示亮度,是指颜色的明亮程度,通常用百分比表示,从黑0%到白100%。

  通过式把 RGB 彩色图像转换为 HSI 彩色模型的图像,HSI 彩色模型的图像,左侧为 RGB 彩色图像。从 HSI 颜色的图像中可以看出,高亮部分为车牌的蓝色区域。

Step2、提取 HSI 图像中的 H、S 分量。

(1)利用 H 分量进行图像颜色分割。由于蓝色的 H 分量值为 240 º,并且图像可能受到噪声污染,所以蓝色的 H 分量值有一定的波动。经过实验可得到蓝色分量 H 的最小值blue_MinH 为 220º,最大值 blue_MaxH 为 245º。假设二值图像为 Bw,Bw 和 HSI 图像具有相同的大小,Bw 中的所有元素都为 0。利用下式把满足蓝色区域条件的设为前景白色,即 Bw = 1;不满足条件的设为背景黑色,即Bw = 0。

(2)利用S分量对图像处理。因为受到天气、光照等条件的影响,非牌照区域也会和牌照区域的色调特征相同,因此可以利用 S 分量去掉饱和度小且满足蓝色色调范围的区域。设饱和度的阈值为 threshS,利用去掉满足蓝色色调条件但非车牌的区域。

Step3、利用车牌的几何特征去除候选区域中的非牌照部分。

  由于天气、光线等因素导致采集到的图像受到噪声的干扰,所以即使经过 Step1、Step2 的处理,仍然可能存在多个车牌的候选区域。利用车牌的几何特征可以过滤掉部分不符合条件的候选区域。常用的车牌几何特征有:候选区域的面积、外接矩形的宽度和高度、外接矩形的长宽比,本文采用候选区域的高度。具体做法如下:通过对 Step2 得到的二值图像 Bw 水平投影,得到水平投影图,其中水平投影值是同一行中的像素点的个数。基于车牌区域存在一定的高度的事实,设定车牌高度的最小值为 Height_Min,最大值为 Height_Max,候选区域的高度为 Heigh。当满足 Height_Min ≤ Height ≤ Height_Max 时,从图像中提取出高度为 Height 的候选区域。

Step4、为处理车辆和车牌颜色特征相同的情况,可以通过特征颜色边缘检测去除和车牌颜色特征相同的伪车牌区域。

  设图像 K(i,j)= (H(i,j),S(i,j), I(i,j)),其中 H(i,j),S(i,j), I(i,j)分别表示 K(i,j)的 H、S、I 分量。二维数组 K2(i,j)是边缘检测后的图像。采用以 K(i,j)为中心的 3×3窗口检测特定的颜色边缘。

(1)在 HSI 彩色模型中,满足式前两式时判为蓝色;满足式(2.4)则为白色。

(2)获取蓝白边缘图像。判断蓝白边缘的条件为:(a)K(i-1,j-1)、K(i,j-1)、K(i+1,j-1)都为蓝色像素点,K(i-1,j+1)、K(i,j+1)、K(i+1,j+1)均为白色像素点;(b)K(i-1,j-1)、K(i,j-1)、K(i+1,j-1)都为白色像素点,K(i-1,j+1)、K(i,j+1)、K(i+1,j+1)均为蓝色像素点。若满足(a)、(b)中的任意一个条件,则 K(i-1,j)、K(i,j)、K(i+1,j)为蓝白边缘点,令 K2(i-1,j)= K2(i,j) = K2(i+1,j) = 1,并将该窗口中的 K2 其它像素设为 0;若以上条件均不满足,则将该窗口位置的 K2 中的所有像素值置为 0。同时将窗口遍历整幅图像,得到蓝白边缘图。

(3)利用车牌的几何特征去掉不符合条件的候选区域。面积大小的计算定义为:蓝白边缘图像中白色的像素点的总数,即为 white_CountTotal。设车牌区域面积的最小值为 min_Area,最大值为 max_Area。当 min_Area ≤ white_CountTotal 并且 white_CountTotal ≤ max_Area,则认为是车牌区域。

Step5、确定车牌区域的宽度。

  经过前面的步骤已得到车牌区域,确切的说应该是车牌的高度,所以还需得到车牌的宽度。本文采用垂直投影的方法确定车牌的宽度。对车牌区域进行垂直投影。垂直投影值定义为图像中同一列为白色像素点的个数,记为vertical_Count,令垂直投影值的阈值为 verticalValue_Thresh。

  具体过程如下:

  •   首先从图像的最左边扫描图像的垂直投影值,当 vertical_Count ≥verticalValue_Thresh 时,该位置即为车牌区域的起点 wide_Start ;
  •   然后继续扫描直到vertical_Count ≤ verticalValue_Thresh 时,此位置则为车牌区域的终点 wide_End;
  •   最后得到车牌区域的宽度 wide = wide_End – wide_Start。

车牌识别LPR(五)-- 一种车牌定位法的更多相关文章

  1. 车牌识别LPR(四)-- 车牌定位

    第四篇:车牌定位 车牌定位就是采用一系列图像处理或者数学的方法从一幅图像中将车牌准确地定位出来.车牌定位提取出的车牌是整个车牌识别系统的数据来源,它的效果的好坏直接影响到整个系统的表现,只有准确地定位 ...

  2. 车牌识别LPR(二)-- 车牌特征及难点

    第二篇:车牌的特征及难点 2.1  对我国车牌的认识 我国目前使用的汽车牌号标准是 2007 年开始实施的<中华人民共和国机动车号牌>GA36-2007(2010 年修订).根据 GA36 ...

  3. 车牌识别LPR系统系列文章汇总

    这里的LPR的的几篇文章是之前项目的一些相关资料的整理,涉及实验室内部的资料就没有放上来,希望能对想了解这方面的同学,有所帮助,那怕了解个大概也好.知道整体的思路就好.当初就是一个人瞎摸索,走了很多的 ...

  4. 车牌识别LPR(八)-- 字符识别

    ​第八篇:字符识别 车牌定位.车牌倾斜校正.车牌字符分割都是为车牌字符识别做的前提工作,这些前提工作直接关系到车牌识别系统的性能.车牌字符识别是车牌识别系统的核心部分,车牌字符识别的准确率是衡量车牌识 ...

  5. 车牌识别LPR(一)-- 研究背景

    在年尾用了几天的时间将2014年的所有工作都总结了一遍,将之前的文档综合了下. 以下是LPR系统,车牌识别的一些总结资料. 第一篇:LPR研究背景 汽车的出现改变了以往出行徒步和以马代步的时代,极大地 ...

  6. 车牌识别LPR(三)-- LPR系统整体结构

    第三篇:系统的整体架构 LPR系统大体上可由图像采集系统,图像处理系统,数据库管理系统三个子系统组成.它综合了通讯.信息.控制.传感.计算机等各种先进技术,构成一个智能电子系统. 图像采集系统:图像采 ...

  7. 车牌识别LPR(六)-- 字符分割

    第六篇:字符分割 在知道了车牌字符的规律之后,可以根据车牌的特点对字符进行分割.一般最容易想到的方法就是根据车牌投影.像素统计特征对车牌图像进行字符分割的方法.是一种最常用的.最基本的.最简单的车牌字 ...

  8. 车牌识别LPR(七)-- 字符特征

    第七篇:字符特征 选择的字符特征应该满足以下条件: (1)选取的字符特征具有较强的鲁棒性,不受字符变形.弯曲等影响. (2)两个字符的字符特征不能完全相同,但部分相同是允许的,即选择的字符特征是唯一的 ...

  9. 你知道现在有一种新的OCR技术叫“移动端车牌识别”吗?

    核心内容:车牌识别.OCR识别技术.移动端车牌识别.手机端车牌识别.安卓车牌识别.Android车牌识别.iOS车牌识别 一.移动端车牌识别OCR技术研发原理 移动端车牌识别是基于OCR识别的一种应用 ...

随机推荐

  1. 源码编译安装MySQL 5.7.9

    安装CentOS 6.3 配置yum:[root@hank-yoon ~]# cd /etc/yum.repos.d/ [root@hank-yoon yum.repos.d]# mkdir a [r ...

  2. WPF TextBox 的 EventTrigger & 重写控件

    遇到一个需求,在textbox获得焦点的时候,调用一个外部的软键盘. 这可以用两个不同的方法来达到目的. 1.EventTrigger 首先定义一个Style <Style x:Key=&quo ...

  3. Java中如何防止内存泄漏的发生

    在Java开发中我们常常会遇到内存泄漏的情况发生.那么为什么会发生内存泄漏,以及怎样去防止! 内存泄漏的定义:对象已经没有被应用程序使用,但是垃圾回收器没办法移除它们,因为还在被引用着. 为什么会发生 ...

  4. C# Double toString保留小数点方法

    有时候double型数据需要toString(),但又想保留小数,当值为整数,比如3.00时tostring后会变为”3″,具体说明见下: 1 string str0 = i.ToString(&qu ...

  5. OC特有语法:分类category,给NSString增加方法计算字符串中数字的个数

    1:分类的使用场景:想对一个类,扩充一些功能,而又不改变原来类的模型,也不用继承,这时OC中的特有语法:分类可以做到: 当然分类也是一个类,也需要声明和实现,声明在.h文件中,实现在.m文件中,格式如 ...

  6. Careercup - Facebook面试题 - 5998719358992384

    2014-05-02 00:22 题目链接 原题: Given a matrix consisting of 's. 题目:给定一个01矩阵,找出由1构成的连通分量中最大的一个. 解法:四邻接还是八邻 ...

  7. [转载]关于安装Android Studio的一些问题的解决方法

    最近在研究Android编程,在Android Studio安装和使用时遇到了麻烦,从园子里找到了<关于安装Android Studio的一些问题的解决方法>的,很多问题找到了解决办法. ...

  8. 编译dubbo2.5.4时遇到的问题及解决

    dubbo的官方git地址为:https://github.com/alibaba/dubbo 按照其流程进行下载及编译,遇到的问题为: 1. 执行 mvn clean install -Dmaven ...

  9. iframe嵌入其他网站,如何自适应高度

    终于有一周时间,工作不那么忙了,腾出手来总结下工作过程中学到的知识. 每天遇到新问题,解决新问题,但是却很少有时间去仔细研究下,或者总结下.攒的多了,就得从头捋一遍. 说下iframe自适应高度: 搜 ...

  10. Unity3d开发wp8问题汇总

    原地址:http://blog.csdn.net/sunshine_1984/article/details/12849117 .wp8应用点击返回键没有响应将Unity3d导出wp8工程后,编译工程 ...