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

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. active-mq的使用

    1.下载ActiveMQ 去官方网站下载:http://activemq.apache.org/ 2.运行ActiveMQ 解压缩apache-activemq-5.5.1-bin.zip,然后双击a ...

  2. .NET中如何使用反序列化JSON字符串/序列化泛型对象toJsonStr

    在进行 .NET Web MVC 框架开发的网站程序的时候,我们都会遇到最关键的问题,数据传输.   .NET MVC 4中的ControllerBase类建议我们用ViewBag动态数据字典形式(t ...

  3. ASP.NET MVC NonActionAttribute使用说明

    默认情况下,MVC 框架将 controller 类的所有公共方法都视为操作方法. 如果您的 controller 类包含公共方法,并且您不希望它成为操作方法,则必须用 NonActionAttrib ...

  4. thinkphp对数据库操作有哪些内置函数

    getModelName() 获取当前Model的名称 getTableName() 获取当前Model的数据表名称 switchModel(type,vars=array()) 动态切换模型 tab ...

  5. 2659: [Beijing wc2012]算不出的算式 - BZOJ

    最近有点颓废,刷水题,数学题(根本不会做啊) 题意:求 q,p是两个奇质数 网上题解就直接说是几何意义,问了别人才知道 我们在坐标轴上画出来就是在线段y=(q/p)x下方的格点和y=(p/q)x下方的 ...

  6. [转载]如何申请淘宝app_key、app_secret、SessionKey?

    不知道如何申请淘宝开发平台的App Key?其实申请App key很简单,主要了解申请步骤以及各个App key的数据阶段状态就可以了!下面由淘客帝国为您做详细图文讲解!申请比较简单,不过为了新手能够 ...

  7. matlab中函数fscanf

    matlab中函数fscanf matlab中函数fscanf在文件读取方面的实例如下: 从文件中有格式地读数据 fscanf 语法1:[a,count]=fscanf(fid,format,size ...

  8. Unity3D研究院之IOS本地消息通知LocalNotification的使用

    原地址:http://www.xuanyusong.com/archives/2632   现在的游戏里一般都会有本地消息,比如每天定时12点或者下午6点告诉玩家进入游戏领取体力.这种东西没必要服务器 ...

  9. Memcache安全配置

    Memcache安全配置 瞌睡龙 · 2014/01/20 17:59 0x00 Memcache简介 Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash ...

  10. POJ 2568/ZOJ 1965 Decode the Tree

    题意:在树中,每次删去节点值最小的叶子结点. 每删去一个点,就给出与这相连的点的值,直到最后只剩下一个根结点,给这N-1个数,重新建立这个树. 思路: 给出的节点号按次序存入到数组a中,将未给出的数存 ...