[发明专利]一种车牌倾斜矫正方法有效
申请号: | 201611132158.X | 申请日: | 2016-12-09 |
公开(公告)号: | CN106780351B | 公开(公告)日: | 2019-11-29 |
发明(设计)人: | 高飞;汪敏倩;吴宗林 | 申请(专利权)人: | 浙江浩腾电子科技股份有限公司 |
主分类号: | G06T3/60 | 分类号: | G06T3/60;G06T7/13 |
代理公司: | 33213 杭州浙科专利事务所(普通合伙) | 代理人: | 周红芳<国际申请>=<国际公布>=<进入 |
地址: | 323000 浙江省丽水市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种车牌倾斜矫正方法,属于计算机视觉和智能交通技术领域。该车牌倾斜矫正方法是针对车牌的倾斜会对车牌字符切割和字符识别形成干扰等问题,提出的新的倾斜矫正方法,它根据车牌的投影值均方差来确定倾斜角度很好得利用了投影值信息,通过改变θ角度计算车牌图像在不同方向的投影值,采用水平和垂直矫正方式,在计算倾角时不是对原始的图像进行计算投影值,而是分别在原始图像上提取部分图像组成新的小图像进行操作,可以减少很大的计算量,在效率上也有很大的提高,在一定程度上提高了倾角检测的正确性。 | ||
搜索关键词: | 一种 车牌 倾斜 矫正 方法 | ||
【主权项】:
1.一种车牌倾斜矫正方法,其特征在于包括如下步骤:/n步骤1:对车牌图像进行二值化,得到二值图像I,其分辨率为width*height;/n步骤2:从步骤1得到的二值图像I中提取指定部分形成新的图像newImage;/n步骤3:对步骤2的图像newImage进行sobel水平边缘检测,得到边缘图像edgeImage;/n步骤4:在水平方向往顺时针方向30°的范围内,找到最接近车牌水平倾斜角度的度数angle,angle的初始值为0,具体步骤如下:/n步骤4.1:以步骤3的边缘图像edgeImage的左上角为坐标系原点,水平向右为x轴正方向,垂直向下为y轴正方向;坐标系中直线与x轴正方向的夹角记为θ,其中θ的取值范围为:0°≤θ≤30°,初始值为0°;/n步骤4.2:针对当前角度θ定义一条直线方程y=kx+b,其中k表示当前角度θ下所有直线的斜率,x表示步骤4.1中定义的坐标系中的自变量,变化范围为:0≤x≤W,W表示边缘图像edgeImage的宽度,y表示步骤4.1中定义的坐标系中的因变量,变化范围为:0<y<H,H表示边缘图像edgeImage的高度,b表示θ角度下的某一条直线与y轴交点处的坐标y值;/n步骤4.3:根据公式(1)、(2)分别计算当前角度θ下k的值和b的取值范围,令b的初始值为-k×W;/n /n-k×W≤b≤H (2)/n步骤4.4:根据步骤4.3计算得到的k值和当前的b值确定坐标系中的一条直线,在x的变化范围内根据公式(3)计算所有x的值对应的y的值,x变化范围为0≤x≤W,每得到一次y值都要根据公式(4)更新edgeImage在这一条直线上白色像素点总数count,count的初始值为0;/ny=k×x+b (3)/n /n其中p(x,y)为edgeImage在步骤4.1定义的坐标系中坐标为(x,y)处的像素灰度值;/n步骤4.5:由步骤4.4得到的count值,根据公式(5)更新edgeImage在当前θ角度下所有直线上的白色像素点之和count1,根据公式(6)更新edgeImage在当前θ角度下所有直线上的白色像素点平方之和count2,count1和count2的初始值都为0,然后令b=b+1,进入步骤4.4循环,直到:b>H,则结束循环,进入步骤4.6;/ncount1=count1+count (5)/ncount2=count2+count×count (6)/n步骤4.6:根据公式(7)计算mse,根据公式(8)更新angle的值,根据公式(9)更新times的值,根据公式(10)更新MAXmse的值,其中变量mse表示edgeImage在当前θ角度下的投影值均方差,MAXmse表示edgeImage最大投影值均方差,初始值为0,变量times表示在MAXmse值最近一次发生变化之后mse小于MAXmse的次数;/n /n /n /n /n步骤4.7:令当前角度θ=θ+1°,进入步骤4.2循环,直到:θ>30°或者times=5,则结束循环,进入步骤5;/n步骤5:在步骤4获得的angle值基础上,在水平方向往逆时针方向30°的范围内,重新更新angle的值,具体步骤如下:/n步骤5.1:在步骤4.1定义的坐标系中,令θ的取值范围为:-1°≤θ≤-30°,初始值为-1°;/n步骤5.2:针对当前角度θ定义一条直线方程y=kx+b;/n步骤5.3:根据公式(1)、(11)分别计算当前角度θ下k的值和b的取值范围,令b的初始值为0;/n0≤b≤H-k×W (11)/n步骤5.4:根据步骤5.3计算得到的k值和当前的b值确定坐标系中的一条直线,在x的变化范围内根据公式(3)计算所有x的值对应的y的值,x变化范围为0≤x≤W,每得到一次y值都要根据公式(4)更新count值,count的初始值为0;/n步骤5.5:由步骤5.4得到的count值,根据公式(5)更新count1值,根据公式(6)更新count2值,count1和count2的初始值为0,然后令b=b+1,进入步骤5.4循环,直到:b>H-k×W,则结束循环,进入步骤5.6;/n步骤5.6:根据公式(12)计算mse,根据公式(8)更新angle的值,根据公式(9)更新times的值,times的初始值为0,根据公式(10)更新MAXmse的值;/n /n步骤5.7:令当前角度θ=θ-1,进入步骤5.2循环,直到:θ<-30°或者times=5,则结束循环,进入步骤6;/n步骤6:把步骤5获得的angle值作为车牌在水平方向的倾斜角度,记为rightAngle,把步骤1获得的二值化车牌图像旋转rightAngle度,得到水平矫正过的二值化车牌图像;/n步骤7:从步骤6获得的二值化车牌图像中提取部分图像形成新的图像newImage1;/n步骤8:对步骤7获得的图像newImage1进行sobel垂直边缘检测,得到边缘图像edgeImage1;/n步骤9:把步骤8获得的边缘图像edgeImage1分为左半部分和右半部分,在垂直方向往逆时针方向20°的范围内,找到最接近车牌左半部分垂直倾斜角度的度数angleL和最接近车牌右半部分垂直倾斜角度的度数angleR,初始值都为0,具体步骤如下:/n步骤9.1:以步骤8获得的边缘图像edgeImage1的左上角为坐标系原点,水平向右为y轴正方向,垂直向下为x轴正方向;坐标系中直线与x轴正方向的夹角记为θ,其中θ的取值范围为:0°≤θ≤20°,初始值为0°;/n步骤9.2:针对当前角度θ定义一条直线方程y=kx+b;其中x表示步骤9.1中定义的坐标系中的自变量,变化范围为:0≤x≤H1,H1表示边缘图像edgeImage1的高度,y表示步骤9.1中定义的坐标系中的因变量,变化范围为:0<y<W1×0.5,W1表示边缘图像edgeImage1的宽度;/n步骤9.3:根据公式(1)、(13)分别计算θ角度下k的值和b的取值范围,令b的初始值为-k×H1;/n-k×H1<b<W1×0.5 (13)/n步骤9.4:根据步骤9.3计算得到的k值和当前的b值确定坐标系中的一条直线,在x的变化范围内根据公式(3)计算所有x的值对应的y的值,x变化范围为0≤x≤H1,每得到一次y值都要根据公式(14)更新edgeImage1左半部分在这一条直线上白色像素点总数countL,countL的初始值为0,根据公式(15)更新edgeImage1右半部分平移到和左半部分重合的时候在这一条直线上白色像素点总数countR,countR的初始值为0;/n /n /n其中p(x,y)为边缘图像edgeImage1在步骤9定义的坐标系中坐标(x,y)处的像素灰度值;/n步骤9.5:由步骤9.4得到的countL值和countR值,根据公式(16)更新edgeImage1左半部分在当前θ角度下所有直线上的白色像素点之和countL1,根据公式(17)更新edgeImage1右半部分平移到和左半部分重合的时候在当前θ角度下所有直线上的白色像素点之和countR1,根据公式(18)更新edgeImage1左半部分在当前θ角度下所有直线上的白色像素点平方之和countL2,根据公式(19)更新edgeImage1右半部分平移到和左半部分重合的时候在当前θ角度下所有直线上的白色像素点平方之和countR2,countL1、countR1、countL2和countR2的初始值都为0,然后令b=b+1,重新进入步骤9.4循环,直到:b>W1×0.5,则结束循环,进入步骤9.6;/ncountL1=countL1+countL (16)/ncountR1=countR1+countR (17)/ncountL2=countL2+countL×countL (18)/ncountR2=countR2+countR×countR (19)/n步骤9.6:根据公式(20)计算mseL,根据公式(21)计算mseR,根据公式(22)更新angleL的值,根据公式(23)更新angleR的值,根据公式(24)更新timesL的值,根据公式(25)更新timesR的值,根据公式(26)更新MAXmseL的值,根据公式(27)更新MAXmseR的值,其中变量mseL表示edgeImage1左半部分在当前θ角度下的投影值均方差,变量mseR表示edgeImage1右半部分在当前θ角度下的投影值均方差,变量MAXmseL表示edgeImage1左半部分最大投影值均方差,初始值为0,变量MAXmseR表示edgeImage1右半部分最大投影值均方差,初始值为0,变量timesL表示在MAXmseL值最近一次发生变化之后mseL小于MAXmseL的次数,变量timesR表示在MAXmseR值最近一次发生变化之后mseR小于MAXmseR的次数;/n /n /n /n /n /n /n /n /n步骤9.7:令当前角度θ=θ+1°,进入步骤9.2循环,直到:θ>20°或者timesL=timesR=5,则结束循环,进入步骤10;/n步骤10:在步骤9获得的angleL值和angleR值基础上,在垂直方向往顺时针方向20°的范围内,重新更新angleL的值和angleR的值,具体步骤如下:/n步骤10.1:在步骤9.1定义的坐标系中,令θ的取值范围为:-20°≤θ≤-1°,初始值为-1°;/n步骤10.2:针对当前角度θ定义一条直线方程y=kx+b;/n步骤10.3:根据公式(1)、(28)分别计算θ角度下k的值和b的取值范围,令b的初始值为0;/n0<b<W1×0.5-k×H1 (28)/n步骤10.4:根据步骤10.3计算得到的k值和当前的b值确定坐标系中的一条直线,在x的变化范围内根据公式(3)计算所有x的值对应的y的值,x变化范围为0≤x≤H1,每得到一次y值都要根据公式(14)更新countL,countL的初始值为0,根据公式(15)更新countR,countR的初始值为0;/n步骤10.5:由步骤10.4得到的countL值和countR值,根据公式(16)更新countL1,根据公式(17)更新countR1,根据公式(18)更新countL2,根据公式(19)更新countR2,countL1、countR1、countL2和countR2的初始值都为0,然后令b=b+1,进入步骤10.4循环,直到:b>W1×0.5-k×H1,则结束循环,进入步骤10.6;/n步骤10.6:根据公式(29)计算mseL,根据公式(30)计算mseR,根据公式(22)更新angleL的值,根据公式(23)更新angleR的值,根据公式(24)更新timesL的值,根据公式(25)更新timesR的值,timesL和timesR的初始值为0,根据公式(26)更新MAXmseL的值,根据公式(27)更新MAXmseR的值;/n /n /n步骤10.7:令当前角度θ=θ-1,进入步骤10.2循环,直到:θ<-20°或者timesL=timesR=5,则结束循环,进入步骤11;/n步骤11:由步骤10获得的angleL和angleR,根据公式(31)计算车牌在垂直方向的倾斜角度rightAngle1;/n /n步骤12:创建一幅空白图像newImage2,图像宽度等于width1,图像高度等于height1;/n步骤13:以步骤6获得的二值化图像的左上角为坐标系原点,水平向右为y轴正方向,垂直向下为x轴正方向,根据公式(32)计算步骤6获得的二值化图像中每一个像素点坐标(x,y)在图像newImage2中的对应点坐标(x1,y1),使图像newImage2中的(x1,y1)处的像素灰度值等于步骤6获得的二值化图像中(x,y)处的像素灰度值,最终得到的图像newImage2即为经过垂直矫正后的车牌二值化图像/n /n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江浩腾电子科技股份有限公司,未经浙江浩腾电子科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201611132158.X/,转载请声明来源钻瓜专利网。