一种车牌定位方法及装置
技术领域
本发明涉及一种视频图像车牌定位技术领域,特别是一种车牌定位方法及装置。
背景技术
车牌识别系统是现代智能交通系统中的重要组成部分之一,是鉴别车辆信息的关键技术,对于公共交通、车辆管理、甚至刑事侦查都具有重要作用。车牌识别系统主要包括图像捕捉与获取、车牌定位、字符分割、字符识别等步骤,其中车牌定位是后续车牌识别处理的重要基础。
现有的车牌定位方法主要包括基于垂直纹理特征的定位法、形态学定位法、基于颜色特征的定位法、Hough变换的定位法、模式识别方法定位法等。
其中,基于垂直纹理特征的定位法容易受到背景的干扰,如车牌两侧的竖边框,车牌两侧本身的垂直纹理等,造成定位不精确。
形态学定位法利用数学形态学图像处理的基本思想进行车牌定位,而数学形态学图像处理的基本思想是利用一个结构元素来探测一个图像,看是否能将这个结构元素很好地放在图像内部,同时验证填放元素的方法是否有效,其中腐蚀、膨胀、开启和关闭是数学形态学的基本运算,但是基于数学形态学的车牌区域定位方法不能精确确定车牌左右边界的位置,而且形态学处理的时间代价大。
基于颜色特征的定位法利用车牌颜色这一明显特征,并结合先验知识进行定位判断,不受车牌尺寸大小的限制,精确度较高,但这种定位法的缺点是对图像质量要求很高,而且无法应对偏色特别是车牌褪色及背景干扰等情况。
Hough变换是图像处理中的一种特征提取技术,它通过一种投票算法检测具有特定形状的物体,经典Hough变换用来检测图像中的直线。考虑到车牌图像的垂直纹理比较丰富,很多学者用此方法来进行车牌定位,但是很多情况下车牌被人为干扰,如增加车牌修饰框等,造成车牌附近的垂直纹理非常丰富,使得这种定位方法收到极大干扰,定位精确度大大降低。
采用模式识别方法定位法进行训练检测有一定的抗干扰能力,但是精确程度还是无法很好的保证,这是因为模式识别方法定位法一定会涉及到图像的金字塔图层,对检测到的目标进行目标融合,而这根本就达不到精确定位的要求。
因此,上述车牌定位方法适用范围都比较窄,难以高效、精确进行车牌定位,大多数情况下只能采用上述方法对车牌进行粗定位。
为此,现有技术中又出现了一种对车牌进行精确定位的方法,这种方法需要根据标准车牌的尺寸建立一个409(W)×90(H)像素的车牌模板,如图1和2所示,利用坐标来表达标准车牌的每个字符的位置,然后进行模板匹配,但是由于有的字符宽度比较窄,如“1”,其两侧大部分为背景,在进行模板匹配时,模板的字符区域与较窄字符的两侧位置区域匹配不上,这就会大大降低车牌定位的精确度,进而影响后续的车牌识别过程。
发明内容
本发明实施例提供一种车牌定位方法及装置,能够有效解决较窄字符的模板匹配问题、大大提高车牌定位精确度。
本发明实施例提供的一种车牌定位方法,包括:
获取车牌图像;
对所述车牌图像进行车牌粗定位;
建立车牌模板,所述车牌模板包括字符区域和背景区域;
根据经过粗定位的车牌图像与所述车牌模板,获得车牌位置;
所述字符区域包括有效区域和无效区域;
所述有效区域的宽度小于等于最窄字符的字符宽度;
所述对所述车牌图像进行车牌粗定位包括:对所述车牌图像进行二值化处理获得车牌二值图像;
所述根据经过粗定位的车牌图像与所述车牌模板,获得车牌位置包括:
获取所述车牌模板的车牌字符笔画宽度值b;
统计所述车牌二值图像中每列的白色像素个数值;
当所述车牌模板的第n列位于所述有效区域或所述背景区域时,将所述车牌二值图像的第m列的白色像素个数值与所述车牌模板的车牌字符笔画宽度值b进行比较,获得车牌位置。
上述车牌定位方法中,所述将所述车牌二值图像的第m列的白色像素个数值与所述车牌模板的车牌字符笔画宽度值b进行比较,获得车牌位置包括:
C.判断所述车牌模板的第n列(n初始值为1)是否属于所述无效区域;如果是,则执行步骤D;如果否,则执行步骤F;
D.n=n+1;
E.判断n是否大于N(N为所述车牌模板的总列数),如果是,则执行步骤G,如果否,则执行步骤C;
F.判断所述车牌二值图像的第m列(m=n+x-1,x为比对次数,x初始值为1)的白色像素个数值是否大于等于所述车牌字符笔画宽度值b;如果是,则ax=ax+1(ax为得分,ax初始值为0),n=n+1,执行步骤E;如果否,则ax=ax,n=n+1,执行步骤E;
G.x=x+1;
H.判断x是否大于N,如果是,则执行步骤I;如果否,则执行步骤C;
I.比较a1、a2、a3……ax的大小,得分最高时所述车牌二值图像与所述车牌模板的匹配位置,即为车牌位置。
上述车牌定位方法中,所述将所述车牌二值图像的第m列的白色像素个数值与所述车牌模板的车牌字符笔画宽度值b进行比较,获得车牌位置,进一步包括:
B’.将所述车牌字符笔画宽度值分别乘以至少三个调整系数,获得至少三个调整后车牌字符笔画宽度值b1、b2……by(y为正整数);
D’.判断所述车牌模板的第n列(n初始值为1)是否属于所述无效区域;如果是,则执行步骤E’;如果否,则执行步骤G’;
E’.n=n+1;
F’.判断n是否大于N(N为所述车牌模板的总列数),如果是,则执行步骤H’,如果否,则执行步骤D’;
G’.判断所述车牌二值图像的第m列(m=n+x-1,x为比对次数,x初始值为1)的白色像素个数值是否大于等于车牌字符笔画宽度值b’(b’=bw,w初始值为1);如果是,则ax=ax+1(ax为得分,ax初始值为0),n=n+1,执行步骤F’;如果否,则ax=ax,n=n+1,执行步骤F’;
H’.x=x+1;
I’.判断x是否大于N,如果是,则执行步骤J’;如果否,则执行步骤D’;
J’.比较a1、a2、a3……ax的大小,获得本次比对的最大值maxw;
K’.n=1,w=w+1;
L’判断w是否大于y,如果是,则执行步骤M’,如果否,则执行步骤D’;
M’比较分别采用各个调整后车牌字符笔画宽度值而得到的max1、max2……maxy,获得最高值MAX,此时所述车牌二值图像与所述车牌模板的匹配位置,即为车牌位置。
上述车牌定位方法中,在所述统计所述车牌二值图像中每列的白色像素个数值之前包括修正所述车牌模板和/或所述车牌二值图像的尺寸。
上述车牌定位方法中,所述修正所述车牌模板和/或所述车牌二值图像的尺寸包括:根据所述对所述车牌图像进行车牌粗定位而获得的车牌字符高度,对所述车牌模板和/或所述车牌二值图像的尺寸进行等比调整,使所述车牌模板与所述车牌二值图像的高度尺寸一致。
上述车牌定位方法中,所述修正所述车牌模板和/或所述车牌二值图像的尺寸包括:根据所述对所述车牌图像进行车牌粗定位而获得的车牌字符高度,对所述车牌模板的尺寸进行等比调整或者对所述车牌模板和所述车牌二值图像的尺寸均进行等比调整,使所述车牌模板与所述车牌二值图像的高度尺寸一致,则所述修正所述车牌模板和/或所述车牌二值图像的尺寸之后进一步包括修正车牌字符笔画宽度值,所述修正车牌字符笔画宽度值包括按照所述车牌模板尺寸调整的比例,同比调整车牌字符笔画宽度值。
本发明实施例提供的一种车牌定位装置,包括:
图像获取模块,用于获取车牌图像;
粗定位模块,用于对所述车牌图像进行车牌粗定位;
模板建立模块,用于建立车牌模板,所述车牌模板包括字符区域和背景区域;
匹配定位模块,用于根据经过粗定位的车牌图像与所述车牌模板,获得车牌位置;
所述字符区域包括有效区域和无效区域;
所述有效区域的宽度小于等于最窄字符的字符宽度;
所述对所述车牌图像进行车牌粗定位包括:对所述车牌图像进行二值化处理获得车牌二值图像;
所述匹配定位模块包括:车牌字符笔画宽度获取子模块,用于获取车牌字符笔画宽度值b;像素统计子模块,用于统计所述车牌二值图像中每列的白色像素个数值;当所述车牌模板的第n列位于所述有效区域(3)或所述背景区域(2)时,所述匹配定位模块用于将所述车牌二值图像的第m列的白色像素个数值与所述车牌模板的车牌字符笔画宽度值b进行比较,获得车牌位置。
上述车牌定位装置中,所述匹配定位模块进一步包括:
第一判断子模块,用于判断所述车牌模板的第n列(n初始值为1)是否属于所述无效区域;如果是,则执行第一加权子模块;如果否,则执行第三判断子模块;
第一加权子模块,用于执行n=n+1;
第二判断子模块,用于判断n是否大于N(N为所述车牌模板的总列数),如果是,则执行第二加权子模块,如果否,则执行第一判断子模块;
第三判断子模块,用于判断所述车牌二值图像的第m列(m=n+x-1,x为比对次数,x初始值为1)的白色像素个数值是否大于等于所述车牌字符笔画宽度值b;如果是,则ax=ax+1(ax为得分,ax初始值为0),n=n+1,执行第二判断子模块;如果否,则ax=ax,n=n+1,执行第二判断子模块;
第二加权子模块,用于执行x=x+1;
第三判断子模块,用于判断x是否大于N,如果是,则执行第一比较子模块;如果否,则执行第一判断子模块;
第一比较子模块,用于比较a1、a2、a3……ax的大小,得分最高时所述车牌二值图像与所述车牌模板的匹配位置,即为车牌位置。
上述车牌定位装置中,所述匹配定位模块进一步包括:
车牌字符笔画宽度调整子模块,用于用将所述车牌字符笔画宽度值分别乘以至少三个调整系数,获得至少三个调整后车牌字符笔画宽度值b1、b2……by,y为正整数;
第一判断子模块,用于判断所述车牌模板的第n列,n初始值为1,是否属于所述无效区域;如果是,则执行第一加权子模块;如果否,则执行第三判断子模块;
第一加权子模块,用于执行n=n+1;
第二判断子模块,用于判断n是否大于N,N为所述车牌模板的总列数,如果是,则执行第二加权子模块,如果否,则执行第一判断子模块;
第三判断子模块,用于判断所述车牌二值图像的第m列(m=n+x-1,x为比对次数,x初始值为1)的白色像素个数值是否大于等于所述车牌字符笔画宽度值b’,b’=bw,w初始值为1;如果是,则ax=ax+1(ax为得分,ax初始值为0),n=n+1,执行第二判断子模块;如果否,则ax=ax,n=n+1,执行第二判断子模块;
第二加权子模块,用于执行x=x+1;
第三判断子模块,用于判断x是否大于N,如果是,则执行第一比较子模块;如果否,则执行第一判断子模块;
第一比较子模块,用于比较a1、a2、a3……ax的大小,获得本次比对的最大值maxw;
第三加权子模块,用于执行n=1,w=w+1;
第四判断子模块,用于判断w是否大于y,如果是,则执行第二比较子模块,如果否,则执行第一判断子模块;
第二比较子模块,用于比较分别采用各个调整后车牌字符笔画宽度值而得到的max1、max2……maxy,获得最高值MAX,此时所述车牌二值图像与所述车牌模板的匹配位置,即为车牌位置。
上述车牌定位装置中,所述匹配定位模块进一步包括:修正子模块,用于修正所述车牌模板和/或所述车牌二值图像的尺寸。
上述车牌定位装置中,所述修正子模块,进一步用于根据所述对所述车牌图像进行车牌粗定位而获得的车牌字符高度,对所述车牌模板和/或所述车牌二值图像的尺寸进行等比调整,使所述车牌模板与所述车牌二值图像的高度尺寸一致。
上述车牌定位装置中,所述匹配定位模块进一步包括:修正车牌字符笔画宽度值子模块,用于在等比调整所述车牌模板的尺寸或者等比调整所述车牌模板和所述车牌二值图像的尺寸使所述车牌模板与所述车牌二值图像的高度尺寸一致时,按照所述车牌模板尺寸调整的比例,同比调整车牌字符笔画宽度值。
本发明实施例提供的车牌定位方法及装置,采用改进的车牌模板,能够有效解决较窄字符的模板匹配问题、大大提高车牌定位精确度,而且匹配速度快,消除车牌的实际尺寸以及车牌两侧边框等对车牌定位的影响,为后续车牌识别过程提供良好的定位基础,有助于提高现代智能交通系统的精确度和高效性。
附图说明
为了使本发明的内容更容易被清楚的理解,下面根据本发明的具体实施例并结合附图,对本发明作进一步详细的说明,其中
图1是标准车牌尺寸示意图;
图2是现有技术中车牌定位方法所建立的车牌模板示意图;
图3是本发明一实施例所提供的车牌定位方法的流程图;
图4是本发明一实施例所提供的车牌定位方法中车牌二值图像示意图;
图5是本发明一实施例所提供的车牌模板示意图;
图6是本发明一实施例所提供的车牌定位装置的示意图。
图中附图标记表示为:1-字符区域,2-背景区域,3-有效区域,4-无效区域。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种车牌定位方法,用于对视频图像中的车牌进行定位,为后续车牌识别过程提供基础,能够大幅提高车牌定位的准确度和效率。
图3所示为本发明实施例提供的一种车牌定位方法的流程图。如图3所示,该方法包括如下步骤:
步骤100:获取车牌图像。
在本发明一实施例中,按照现有技术的常用手段获取车牌视频图像。
步骤200:对所述车牌图像进行车牌粗定位。
在本发明一实施例中,所述对所述车牌图像进行车牌粗定位包括对所述车牌图像进行二值化处理获得车牌二值图像,如图4所示,二值化处理后的车牌图像呈黑白色,其左侧和右侧的边框,容易被误当做字符提取出来。
步骤300:建立车牌模板。
图5所示为本发明一实施例所提供的车牌模板示意图。如图5所示,该车牌模板具有标准车牌的尺寸以及字符宽度间隔标准。其中,在本发明实施例的车牌模板将车牌区域划分为字符区域1和背景区域2,进一步地,又将字符区域1划分为有效区域3和无效区域4。具体而言,图5中黑色区域为背景区域2,白色区域为有效区域3,灰色区域为无效区域4,而白色区域及灰色区域共同组成字符区域1,有效区域3的宽度小于等于标准车牌上最窄字符“1”的宽度。
步骤400:将经过粗定位的车牌图像与所述车牌模板进行逐列匹配从而获得车牌位置。
在本发明实施例中是将经过粗定位的车牌图像与车牌模板的有效区域3和背景区域2进行逐列匹配从而获得车牌位置。
在本发明一实施例中,以车牌模板的总列数N为409为例,该过程包括如下步骤:
A.获取车牌字符笔画宽度值b。
本领域技术人员可以理解,在车牌未被损坏或人为干预的情况下,车牌上字符的笔画宽度为标准统一的宽度。
B.统计所述车牌二值图像中每列的白色像素个数值;
本领域技术人员可以理解,白色个数为零的列属于背景。在本发明的一个实施例中,将统计后的各列白色像素个数值整合成像素统计数组,便于后续步骤比对使用。
C.判断所述车牌模板的第n列(n初始值为1)是否属于所述无效区域4;如果是,则执行步骤D;如果否,则执行步骤F。
D.n=n+1。
E.判断n是否大于N(N为所述车牌模板的总列数,在本实施例中,N=409),如果是,则执行步骤G,如果否,则执行步骤C。
F.判断所述车牌二值图像的第m列(m=n+x-1,x为比对次数,x初始值为1)的白色像素个数值是否大于等于所述车牌字符笔画宽度值b;如果是,则ax=ax+1(ax为得分,ax初始值为0),n=n+1,执行步骤E;如果否,则ax=ax,n=n+1,执行步骤E。
G.x=x+1。
H.判断x是否大于N,如果是,则执行步骤I;如果否,则执行步骤C。
I.比较a1、a2、a3……ax的大小,得分最高时所述车牌二值图像与所述车牌模板的匹配位置,即为车牌位置。
在本实施例中,最终获得409个得分,即a1、a2、a3……a409,比较上述数值,得分最高时车牌二值图像与车牌模板的匹配位置,即为车牌位置。以a100得分最高为例,车牌二值图像的第100列应与车牌模板的第1列对应,也就是说车牌二值图像的第100列与车牌模板的第1列重合时,车牌二值图像与车牌模板匹配上,从而实现车牌定位。
通过建立车牌模板并将其与车牌二值图像进行比对,能够防止车牌二值图像中两侧边框被当作字符提取出来;而且由于有效区域3的宽度与标准车牌上最窄字符“1”的宽度相同或接近,在进行匹配时,仅对车牌模板的背景区域2、有效区域3和车牌二值图像的对应位置进行匹配,就能够解决现有定位方法中,由于较窄字符两侧大部分是背景,而导致在进行模板匹配时,模板的字符区域与较窄字符的两侧位置区域匹配不上的问题,从而提高了车牌定位的精确度和匹配效率。
在本发明一实施例中,所述步骤400进一步包括将车牌字符笔画宽度值分别乘以至少三个调整系数,获得至少三个调整后车牌字符笔画宽度值。在车牌被损坏或人为干预的情况下,车牌上字符的笔画宽度为非标准宽度,可能比标准宽度更宽或更窄一些,此时需要修正匹配过程中采用的车牌笔画宽度值,为此将标准车牌笔画宽度分别乘以至少三个调整系数,在本发明一实施例中,选择三个调整系数,这三个调整系数可选择为0.8、1和1.2。
以上述三个调整系数为例,且在本实施例中,车牌模板的总列数N为818,所述步骤400具体为:
A’.获取车牌字符笔画宽度值b。
本领域技术人员可以理解,在车牌未被损坏或人为干预的情况下,车牌上字符的笔画宽度为标准统一的宽度。
B’.将所述车牌字符笔画宽度值分别乘以至少三个调整系数,获得至少三个调整后车牌字符笔画宽度值b1、b2……by,y为正整数。
在本实施例中,y=3,三个调整系数分别为0.8、1、1.2,三个调整后车牌字符笔画宽度值分别为b1、b2、b3。
C’.统计所述车牌二值图像中每列的白色像素个数值。
本领域技术人员可以理解,白色个数为零的列属于背景。
D’.判断所述车牌模板的第n列(n初始值为1)是否属于所述无效区域4;如果是,则执行步骤E’;如果否,则执行步骤G’。
E’.n=n+1。
F’.判断n是否大于N(N为所述车牌模板的总列数,在本实施例中,N=818),如果是,则执行步骤H’,如果否,则执行步骤D’。
G’.判断所述车牌二值图像的第m列(m=n+x-1,x为比对次数,x初始值为1)的白色像素个数值是否大于等于车牌字符笔画宽度值b’(b’=bw,w初始值为1);如果是,则ax=ax+1(ax为得分,ax初始值为0),n=n+1,执行步骤F’;如果否,则ax=ax,n=n+1,执行步骤F’。
H’.x=x+1。
I’.判断x是否大于N,如果是,则执行步骤J’;如果否,则执行步骤D’。
J’.比较a1、a2、a3、……ax的大小,获得本次比对的最大值maxw。
在本步骤中,每采用一个调整后车牌字符笔画宽度值就会获得一组818个得分,每组提取出最高得分。例如:在b’=b1=0.8时,获得a1、a2、a3、……a818,比较上述数值,得分最高时(如max1=a100);同理,在b’=b2=1时,获得a1’、a2’、a3’、……a818’,比较上述数值,得分最高时(如max2=a’50);在b’=b3=1.2时,获得a1”、a2”、a3”、……a818”,比较上述数值,得分最高时(如max3=a”200)。
K’.n=1,w=w+1。
L’判断w是否大于y,如果是,则执行步骤M’,如果否,则执行步骤D’。
M’比较分别采用各个调整后车牌字符笔画宽度值而得到的max1、max2、……maxy,获得最高值MAX,此时所述车牌二值图像与所述车牌模板的匹配位置,即为车牌位置。
在本实施例中,比较max1(a100)、max2(a’50)和max3(a”200)的大小,获得最高值,如MAX=a”200,则车牌笔画宽度的调整系数应采用1.2,车牌二值图像的第200列应与车牌模板的第1列对应,也就是说车牌二值图像的第200列与车牌模板的第1列重合时,车牌二值图像与车牌模板匹配上,从而实现车牌定位。
在本发明一实施例中,在所述统计所述车牌二值图像中每列的白色像素个数值之前包括修正所述车牌模板和/或所述车牌二值图像的尺寸。为了便于匹配操作,在车牌模板和车牌二值图像的尺寸不一致的情况下,需要首先对车牌模板和/或车牌二值图像的尺寸进行调整,使二者一致。
在本发明一实施例中,所述修正所述车牌模板和/或所述车牌二值图像的尺寸包括:根据对车牌图像进行车牌粗定位而获得的车牌字符高度,对所述车牌模板和/或所述车牌二值图像的尺寸进行等比调整,使所述车牌模板与所述车牌二值图像的高度尺寸一致。
为了使车牌模板与车牌二值图像的高度一致,可以只调整车牌模板的尺寸,即保持宽、高等比例缩放车牌模板,使其与车牌二值图像的高度一致。或者,同时调整车牌模板、车牌二值图像的尺寸,即保持宽、高等比例缩放所述车牌模板、车牌二值图像,只要最终使二者高度一致即可。但是,在对车牌模板的尺寸进行等比调整或者对车牌模板和车牌二值图像的尺寸均进行等比调整使所述车牌模板与所述车牌二值图像的高度尺寸一致的话,则所述修正所述车牌模板和/或所述车牌二值图像的尺寸之后进一步包括修正车牌字符笔画宽度值,所述修正车牌字符笔画宽度值包括按照所述车牌模板尺寸调整的比例,同比调整车牌字符笔画宽度值。当然,为了简化方法步骤,可以只调整车牌二值图像的尺寸,即保持宽、高等比例缩放车牌二值图像,使其与车牌模板的高度一致,此时无需修正车牌字符笔画宽度值。
在本发明一实施例中提供一种车牌定位装置。如图6所示,该车牌定位装置包括:
图像获取模块,用于获取车牌图像。
粗定位模块,用于对所述车牌图像进行车牌粗定位。在本发明一实施例中,所述粗定位模块进一步用于对所述车牌图像进行二值化处理获得车牌二值图像。
模板建立模块,用于建立车牌模板。在本发明一实施例中,车牌模板将车牌区域划分为字符区域1和背景区域2,进一步地,又将字符区域1划分为有效区域3和无效区域4。具体而言,图5中黑色区域为背景区域2,白色区域为有效区域3,灰色区域为无效区域4,而白色区域及灰色区域共同组成字符区域1,有效区域3的宽度小于等于标准车牌上最窄字符“1”的宽度。
匹配定位模块,用于将经过粗定位的车牌图像与所述车牌模板进行逐列匹配从而获得车牌位置。在本发明实施例中,所述匹配定位模块进一步用于将经过粗定位的车牌图像与车牌模板的有效区域3和背景区域2进行逐列匹配从而获得车牌位置。
在本发明一实施例中,以车牌模板的总列数N为1200为例,所述匹配定位模块进一步包括:
车牌字符笔画宽度获取子模块,用于获取车牌字符笔画宽度值b。
像素统计子模块,用于统计所述车牌二值图像中每列的白色像素个数值。
第一判断子模块,用于判断所述车牌模板的第n列(n初始值为1)是否属于所述无效区域4;如果是,则执行第一加权子模块;如果否,则执行第三判断子模块。
第一加权子模块,用于执行n=n+1。
第二判断子模块,用于判断n是否大于N(N为所述车牌模板的总列数,在本实施例中,N=1200),如果是,则执行第二加权子模块,如果否,则执行第一判断子模块。
第三判断子模块,用于判断所述车牌二值图像的第m列(m=n+x-1,x为比对次数,x初始值为1)的白色像素个数值是否大于等于所述车牌字符笔画宽度值b;如果是,则ax=ax+1(ax为得分,ax初始值为0),n=n+1,执行第二判断子模块;如果否,则ax=ax,n=n+1,执行第二判断子模块。
第二加权子模块,用于执行x=x+1。
第三判断子模块,用于判断x是否大于N,如果是,则执行第一比较子模块;如果否,则执行第一判断子模块。
第一比较子模块,用于比较a1、a2、a3……ax的大小,得分最高时所述车牌二值图像与所述车牌模板的匹配位置,即为车牌位置。
在本实施例中,最终获得1200个得分,即a1、a2、a3……a1200,比较上述数值,得分最高时车牌二值图像与车牌模板的匹配位置,即为车牌位置。以a450得分最高为例,车牌二值图像的第450列应与车牌模板的第1列对应,也就是说车牌二值图像的第450列与车牌模板的第1列重合时,车牌二值图像与车牌模板匹配上,从而实现车牌定位。
在本发明一实施例中,车牌被损坏或人为干预的情况下,车牌上字符的笔画宽度为非标准宽度,可能比标准宽度更宽或更窄一些,此时需要修正匹配过程中采用的车牌笔画宽度值,为此将标准车牌笔画宽度分别乘以至少三个调整系数,在本发明一实施例中,选择五个调整系数,这五个调整系数可选择为0.85、0.9、1、1.1和1.15。
以上述五个调整系数为例,且在本实施例中,车牌模板的总列数N为600,所述匹配定位模块进一步包括:
车牌字符笔画宽度获取子模块,用于获取车牌字符笔画宽度值b。
车牌字符笔画宽度调整子模块,用于用将所述车牌字符笔画宽度值分别乘以至少三个调整系数,获得至少三个调整后车牌字符笔画宽度值b1、b2、……by(y为正整数)。在本实施例中,y=5,五个调整系数分别为0.85、0.9、1、1.1和1.15,五个调整后车牌字符笔画宽度值分别为b1、b2、b3、b4、b5。
像素统计子模块,用于统计所述车牌二值图像中每列的白色像素个数值。
第一判断子模块,用于判断所述车牌模板的第n列(n初始值为1)是否属于所述无效区域4;如果是,则执行第一加权子模块;如果否,则执行第三判断子模块。
第一加权子模块,用于执行n=n+1。
第二判断子模块,用于判断n是否大于N(N为所述车牌模板的总列数,在本实施例中,N=600),如果是,则执行第二加权子模块,如果否,则执行第一判断子模块。
第三判断子模块,用于判断所述车牌二值图像的第m列(m=n+x-1,x为比对次数,x初始值为1)的白色像素个数值是否大于等于所述车牌字符笔画宽度值b’(b’=bw,w初始值为1);如果是,则ax=ax+1(ax为得分,ax初始值为0),n=n+1,执行第二判断子模块;如果否,则ax=ax,n=n+1,执行第二判断子模块。
第二加权子模块,用于执行x=x+1。
第三判断子模块,用于判断x是否大于N,如果是,则执行第一比较子模块;如果否,则执行第一判断子模块。
第一比较子模块,用于比较a1、a2、a3、……ax的大小,获得本次比对的最大值maxw;
在本步骤中,每采用一个调整后车牌字符笔画宽度值就会获得一组600个得分,每组提取出最高得分。例如:在b’=b1=0.85时,获得a1、a2、a3、……a600,比较上述数值,得分最高时(如max1=a30);同理,在b’=b2=0.9时,获得a1’、a2’、a3’、……a600’,比较上述数值,得分最高时(如max2=a’150);在b’=b3=1时,获得a1”、a2”、a3”、……a600”,比较上述数值,得分最高时(如max3=a”180);在b’=b4=1.1时,获得a1”’、a2”’、a3”’、……a600”’,比较上述数值,得分最高时(如max4=a”’200);在b’=b5=1.15时,获得a1””、a2””、a3””、……a600””,比较上述数值,得分最高时(如max5=a”’300)。
第三加权子模块,用于执行n=1,w=w+1。
第四判断子模块,用于判断w是否大于y,如果是,则执行第二比较子模块,如果否,则执行第一判断子模块。
第二比较子模块,用于比较分别采用各个调整后车牌字符笔画宽度值而得到的max1、max2、……maxy,获得最高值MAX,此时所述车牌二值图像与所述车牌模板的匹配位置,即为车牌位置。
在本实施例中,比较max1(a30)、max2(a’150)、max3(a”180)、max4(a”’200)、max5(a”’300)的大小,获得最高值,如MAX=a’150,则车牌笔画宽度的调整系数应采用0.9,车牌二值图像的第150列应与车牌模板的第1列对应,也就是说车牌二值图像的第150列与车牌模板的第1列重合时,车牌二值图像与车牌模板匹配上,从而实现车牌定位。
在本发明一实施例中,所述匹配定位模块,进一步包括
修正子模块,用于修正所述车牌模板和/或所述车牌二值图像的尺寸。所述修正子模块,进一步用于根据所述对所述车牌图像进行车牌粗定位而获得的车牌字符高度,对所述车牌模板和/或所述车牌二值图像的尺寸进行等比调整,使所述车牌模板与所述车牌二值图像的高度尺寸一致。
在本发明一实施例中,所述匹配定位模块,进一步包括
修正车牌字符笔画宽度值子模块,用于在等比调整所述车牌模板的尺寸或者等比调整所述车牌模板和所述车牌二值图像的尺寸使所述车牌模板与所述车牌二值图像的高度尺寸一致时,按照所述车牌模板尺寸调整的比例,同比调整车牌字符笔画宽度值。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换等,均应包含在本发明的保护范围之内。