基于区域划分和霍夫变换的车牌倾斜校正
- 格式:pdf
- 大小:2.37 MB
- 文档页数:8
基于hough变换的倾斜文档图像快速校正冯雷;耿英楠【摘要】对文档图像字符识别时,需要对有倾斜的图像进行校正,以提高分割和识别的精度.提出一种基于梯度方向统计的倾斜文档图像快速校正方法,该方法利用图像的梯度方向分段累积直方图,得到图像的大致倾斜角度,然后利用hough变换思想,在获取的大致角度范围内对图像进行投影,得到精确的图像倾斜角度,有效地缩小了hough变换角度的搜索范围.对手写和打印体文档图像进行的实验结果表明,与传统的hough变换投影方法相比,该方法的算法执行时间大幅度减小,对图像噪声也具有很强的抗干扰能力.%During the document images' character recognition,skew correction could improve the accuracy of segmentation and recognition.A fast correction method of skew document image based on gradient direction statistics is proposed.The method uses the gradient direction of the image to accumulate the histogram to obtain the approximate inclination angle of the image.Then,using the hough transform idea,the image is taken in the approximate angle range to shoot,get accurate image skew angle,effectively narrowing the hough transform angle search range.Experiments on handwritten and printed document images show that compared with the traditional hough transform projection method,the algorithm execution time of the method is greatly reduced,and the image noise also has strong anti-interference ability.【期刊名称】《内蒙古师范大学学报(自然科学汉文版)》【年(卷),期】2017(046)002【总页数】4页(P219-222)【关键词】文档图像;倾斜校正;字符识别;hough变换;梯度方向;累积直方图【作者】冯雷;耿英楠【作者单位】长春工程学院电气与信息工程学院,吉林长春130012;长春工程学院电气与信息工程学院,吉林长春130012【正文语种】中文【中图分类】TP391.41随着手机、数码相机、扫描仪等设备的快速发展,图像采集已经越来越简单,因此对纸质文档上的字符识别也得到越来越多的重视.在图像采集阶段,由于纸质材料放置不当或采集设备拍摄角度不正等原因,使采集到的文档图像发生倾斜,给后期识别对象的位置提取和字符识别带来影响.因此,对图像进行位置校正非常关键.倾斜角度是指文本基准线和水平方向的倾角[1],文本基准线一般是指文档图像中绝大多数文字的排列方向,而获取基准方向的角度,是图像校正的关键.目前,对倾斜文档的图像校正主要采用倾斜角度检测方法进行旋正校正.文献 [2] 提出的投影方法,可以估计得到倾斜角度,精度为±10°度,精度较低; 文献 [3-4] 采用hough变换,通过寻找图像中的直线得到倾斜角度; 文献 [5] 采用对连通域做K近邻聚类的方法,得到整体连通域的方向.这两类方法在图像噪声较小的情况下精度较高,但是计算量较大.本文针对以上算法的优缺点,提出由粗到精的两步法得到图像的精确旋转角度,首先通过图像的梯度方向累积直方图,有效地解决文档噪声对直接采用hough变换投影的影响,得到图像的大致倾斜角度,然后利用hough变换思想,在获取的大致角度范围内对图像进行投影,得到精确的图像倾斜角度,从而极大地缩小了hough变换的角度投影范围.1.1 hough变换投影法经典的hough变换常用来做图像中的直线检测,其原理是假设同一直线上的所有点(xi,yi),符合直线方程yi=kmxi+bm,将(x,y)坐标系转换到(k,b)坐标系,则直线上(xi,yi)点的数量,相当于在(km,bm)点处的投影值,投影值越大,成为一条直线的可能性就越大.为了解决垂直直线和参数的非线性离散化问题,一般将直角坐标系转换到极坐标系下进行hough变换计算,计算公式为r=x cos θ+y sin θ,其中r为原点到直线的垂直距离,θ为r与x轴的夹角.例如,对空间坐标点(x1,y1),(x2,y2),(x3,y3)分别计算θ和对应的rθ,当θ=a和rθ=b时,3条曲线交于一点,即该3点的直线方程参数为(θ=a,rθ=b).在文档图像校正时,取交点最多时对应的θ作为倾斜角.1.2 梯度方向累积直方图计算图像倾斜角度需要在[0°,180°)各个角度上都遍历一遍图像上所有的边缘点,计算量非常大.另外,纸质文档在使用过程中容易留下涂改笔迹、油墨污点等噪声,当噪声较大时,会影响正确倾斜角度的计算.针对这两个问题,本文利用图像梯度方向,得到图像的大概偏转角度,从而缩小hough变换时角度的遍历范围,同时也减小了噪声对精确角度计算的影响.图像梯度方向可以由sobel算子计算得到,α(x,y)=atan (Gy/Gx),其中为被卷积的图像.通常情况下,文档中文字大体往一个方向书写,因此主体梯度方向会集中在某个角度范围内.为了统计方便,把由(2)式得到的弧度转为角度,范围是[0,180°),并统计其阶段累积直方图,其中:即为梯度方向直方图; k是统计直方图的范围为符号函数; O为梯度方向图像,例如倾斜文档图像(图1)的梯度方向图如图2所示; edge为边缘检测图像.因此,本文算法的详细步骤为:Step 1: 将输入的图像I转换为灰度图,并进行高斯卷积滤波,输出为filterImg; Step 2: 计算filterImg的canny边缘,输出为edge;Step 3: 计算filterImg的梯度方向,并将弧度转换为角度,当角度值theta>180°时,令theta=theta-180,输出为O;Step 4: 利用(2)式,计算O的累计直方图A;Step 5: 统计A中最大值对应的角度i,即为该文档的大致倾斜角度;Step 6: 在 [i-k,i+k]角度范围内,利用hough变换遍历edge上的所有边缘点,并返回hough变换投影值最多时对应的θ角度,该角度即为图像倾斜角;Step 7: 根据倾斜角θ对图像进行反向旋转,得到校正后的图像correctImg.图3是图1梯度方向的阶段累积直返图,横坐标表示角度,范围是从 [0,180),纵坐标表示累积值.在计算阶段累计直方图时,(1)式的累计范围k设为10,实验效果较好.图3中峰值对应的横坐标值为24,则在使用hough变换时,在[14°,34°]范围内进行精确角度计算.而用原始hough变换方法计算时,需要对一个M×N的图像,访问180×M×N个像素点,改进后缩小到20×M×N次,减少了大量的计算时间.图4是hough变换关于(rθ,θ)的累计投影值,图中的灰度值越大,成为直线的可能性就越大.本例在[14°,34°]范围内,对图1的canny边缘检测图像进行hough变换直线检测,返回最大投影值时对应的倾斜角度为20°.图5是反向旋转20°后的校正图像,其中的直线是hough变换在图1上投影值最大时,对应的直线在旋转后图像上的位置.本文算法利用C++编程实现,其中利用opencv 3.1实现canny边缘检测和梯度方向计算.取图像尺寸为1920×1081,比较传统hough变换投影法和本文算法的算法执行时间,结果显示,传统hough变换投影法的计算时间为4.1 s,而本文算法的计算时间为0.36 s,性能提升了约10倍.纸质材料在流通过程中,存在人工涂改、磨损等现象,当噪声形成的直线长度大于文档上的基准线长度时,利用hough变换的方法会影响旋转的效果.图6(a)上的两条黑色线条,是模拟噪声画上去的线条,图6(b)和(c)分别是传统方法和本文方法的旋转性能比较.效果表明,本文方法具较强的抗干扰能力.另外,本文方法同样适合手写体文档的图像校正,效果如图7所示.采用级联式的分级倾角检测策略,由粗到精逐步得到文档倾斜角度,主要解决了hough变换耗时长的问题.采用统计图像梯度方向累积直方图的方法,不仅快速缩小了hough变换的角度遍历范围,同时减小了文档上噪声对计算旋转角度的影响.统计图像梯度方向累积直方图的方法,具有一定特征的统计特性,从实验效果来看,对噪声具有较好适应性,并且性能稳定.另外,本文方法也适用手写体文档的倾斜校正,并且可以推广到车牌、身份证、银行卡、票据等图像的旋转校正上去,具有一定的实际应用价值.【相关文献】[1] Slavik P,Govindaraju V. Equivalence of different methods for slant and skew corrections in word recognition applications [J]. IEEE Trans onPAMI,March,2001,23(3):323-326.[2] Jiang X,Bunke H,Widmer-Kljajo D. Proceedings of the Fifth International Conference on Document Analysis and Recognition,Bangalore [C]// Bangalore,India. The Institute of Electrical and Electronics Engineers,Inc,1999:629-632.[3] Srihari S,Govindaraju V. Analysis of textual images using the Hough transform [J]. Machine Vision and Applications,1989,2:141-153.[4] Singha C,Bhatiab N,Kaurc A. Hough transform based fast skew detection and accurate skew correction methods [J]. Pattern Recognition,2008,41:3528-3546.[5] Zhixin Shi,Venu Govindaraju. Skew detection for complex document images using fuzzy runlength [C]// Proceedings of the Seventh International Conference on Document Analysis and Recognition,2003:715-719.。
倾斜矫正方案背景在现代社会中,越来越多的场合需要对文本图像进行识别与处理。
然而,在拍摄过程中,由于拍摄设备的因素,如相机的拍摄角度、拍摄位置等,会导致图片出现倾斜,从而给后续处理带来不便。
因此,进行倾斜矫正处理,将文本图像矫正成水平或垂直方向有利于提高识别和后续处理的准确度。
方案基于Hough变换的倾斜矫正Hough变换是一种常用的图像处理方法,适用于直线、圆等形状的提取与检测。
其中,概率Hough变换适用于检测直线。
运用概率Hough变换,可以通过以下步骤进行文本图像倾斜矫正:1.图像二值化处理,将颜色转化为黑白两种2.进行边缘检测,得到文本的边缘3.使用概率Hough变换,检测出文本的倾斜角度4.对图像进行旋转矫正,将文本矫正至水平或垂直方向使用Hough变换法进行倾斜矫正处理,具有以下优点:•对各角度的线段都能检测,鲁棒性好•可以适用于各种形状的文本图像但这种方法也有以下缺点:•算法对计算时间要求高,处理大图像时速度较慢•对于垂直、水平直线检测不如霍夫变换基于霍夫变换的倾斜矫正霍夫变换也是常用的图像处理方法,适用于基于形状特征的检测,例如直线、圆、椭圆等形状。
使用霍夫变换法进行倾斜矫正处理,具有以下优点:•操作简单,速度快•可以适用于各种形状的文本图像以下是使用霍夫变换进行文本图像倾斜矫正的步骤:1.将文本图像转化为灰度图像2.边缘检测,检测出文本的边缘3.进行霍夫变换,计算得到图像中直线的参数4.计算出倾斜角度,进行图像矫正使用霍夫变换进行倾斜矫正处理,可以快速地对文本图像进行处理。
但是,需要注意的是,霍夫变换的缺点是对于小角度的垂直或水平线检测精度不够高。
总结在进行文本图像处理时,倾斜矫正是必要而重要的一个环节。
使用Hough变换或是霍夫变换都可以对图像进行矫正,但应根据图像的特征选择相应的处理方法。
以下是常用的倾斜矫正处理方法:•Hough变换•霍夫变换根据图像的需求和特征,选择合适的方法进行处理,可以达到较好的处理效果。
收稿日期:2005-03-07;修回日期:2005-09-26基金项目:国家自然科学基金项目(60325102;60428101作者简介:张思远(1976-,男,天津人,助教,硕士,研究方向为图像处理及模式识别.随着世界各国汽车数量的增加,城市的交通状况日益受到人们的关注。
智能交通系统(ITS ,intelligenttraffic system 随之产生,它通过对自动采集的实时交通信息进行分析并给出最优方案,能最大限度提高地面交通设施的利用率和效率。
车牌识别(LPR ,licenseplate recognition 技术是ITS 的关键技术之一[1-2]。
车牌识别系统可分为车牌定位、图像预处理、字符切分、字符识别4个部分[3-4],其中图像预处理是系统中的一个重要环节,主要包括图像增强、二值化[5]、去噪、车牌的倾斜矫正和车牌的二次定位。
本文针对车牌图像预处理给出了基于图像特征线的二值化阈值确定方法和针对车牌图像的倾斜矫正改进算法。
由于车牌图像在实际摄取中的特殊性,使得图像中拍到的车牌有不同程度的倾斜变形。
本文在一般矫正方法的基础上,给出了针对车牌特点的改进算法,在水平方向上采用Hough 变换[6-7]确定角度后进行旋转矫正,而在垂直方向上采用投影法[8-9]进行变形矫正,并进行矫正前后的对比,以保证矫正的效果良好。
1车牌图像二值化图像二值化的关键是阈值的选取,只要阈值选取恰当,不仅可以有效地去处噪声,而且可将图像明显地分成目标和背景,大大减少了信息量,提高了处理速度。
传统二值化阈值的确定方法主要有全局阈值法和局部阈值法,全局阈值法是根据图像的灰度直方图的统计分布确定阈值,方法简单但效果一般,抗干扰能力较差;局部阈值法是以每个像素点为中心建立一个模板,通过整个模板的灰度信息综合判断该像素点是置0还是置1,具有一定的自适应性但速度较慢。
车牌识别预处理中的二值化及倾斜矫正算法张思远,樊志远,吴仁彪(中国民用航空学院空中交通管理学院,天津300300摘要:车牌识别中的预处理包括图像增强,二值化和噪声去除。
FPGA实现车牌的倾斜校正【摘要】作为车牌识别系统的关键环节,车牌倾斜直接导致车牌识别准确率降低。
本文主要基于FPGA实现车牌倾斜校正算法,完成如下功能:采用Hough 变换计算倾斜角度,采用CO RDIC(坐标旋转数字计算)算法计算三角函数值;采用双线性插值实现重采样。
【关键词】倾斜校正;FPGA;Hough变换;CO RDIC引言随着我国科学和技术的日益发展,世界范围内汽车数量的增长,城市智能化交通系统(ITS,Intelligent Traffic System)[1]受到人们越来越多的关注并且成为了一个热门的研究领域。
车牌识别(LPR,License Plate Recognition)作为重要技术已经成为系统关键部分的组成。
采集到的车牌图像在一定程度上存在着角度的倾斜,若倾斜角度偏大,则会干扰到了字符识别的准确性,对字符进行分割和识别等工作带来相当大的困扰。
所以说车牌倾斜校正在车牌识别系统中起到了重中之重的地位。
基于FPGA在硬件层面对车牌图像进行倾斜校正,根据倾斜校正算法的特点要求的是实时性和并行性,因此FPGA能很好的达到系统要求,无论是在速度、稳健性、存储容量、复杂环境等方面都可以有可观的改善。
并且基于FPGA的车牌图像倾斜校正系统可以广泛的应用在车牌图像处理和识别系统当中。
系统的整体框架设计如图1所示为系统的整体设计框图,车牌图像经过DA转换模块ADV7180转换成图像数据,将数字图像输入到图片输入FIFO,再进入到Hough变换模块,同时由CORDIC算法得到的正余弦函数值存入片内ROM后,将函数值送到Hough变换模块进行倾斜角度的测量,将角度存入片内RAM中,进入图像旋转模块进行图像旋转,再对旋转后的图像进行双线性插值,将经过倾斜校正的车牌图像存入FIFO通过显示控制器到D/A转换模块ADV7123,最后通过VGA显示出倾斜校正后的车牌图像。
车牌倾斜校正的软件实现对于车牌倾斜校正算法,要确定车牌的倾斜角,之后对其进行旋转,采用Hough变换测得直线,从而得到倾斜角,在Hough变换的过程中通过CORDIC 算法来实现正余弦三角函数值的确定,通过基于CORDIC算法的Hough变换实现得到倾斜角度,最后对图像进行相应的旋转和插值,最终达到倾斜校正的目的。
基于线性回归法的车牌倾斜矫正算法作者:李金铎来源:《中国科技博览》2016年第02期[摘要]线性回归是利用数理统计的分析方法,来确定两种或两种以上变量之间的相互依赖的关系。
车牌的边界具有明显的线性关系,线性回归模型经常用最小二乘的方法来拟合,能达到车牌校正的效果。
车牌的图像一般是彩色的,需要将彩色图像转换为灰度图像,同时需要将灰度图像进行滤波处理,滤波步骤采用维纳滤波器。
经过预处理之后的图像,采用边缘检测方法来获得车牌的边缘点,从图像中选取适合进行线性回归的点,进行图像校正。
MATLAB提供了基本数字图像处理的函数,因此选用MATLAB做为本算法的试验工具。
[关键词]车牌线性回归倾斜矫正中图分类号:TP391.41 文献标识码:A 文章编号:1009-914X(2016)02-0302-011 引言随着经济的发展,机动车辆的数量大幅增长,机动车牌的智能识别变成了重要的课题。
并且实际情况中的拍摄条件的差异性和实际情况的不同,获取的图片的车牌会有倾斜的情况。
车牌的倾斜校正成为了车牌智能识别的关键步骤,对车牌字符分割效果起了决定性的作用。
目前对车牌的倾斜校正工作,已经有了一定的研究成果。
比较常用的方法就是Hough变化的方法来获得车牌旋转角度,完成车牌的倾斜校正工作。
因此本文提出了线性回归法来完成车牌的倾斜校正,并用试验来验证算法的可行性。
MATLAB因为其强大的功能在数字图像的处理方面获得了广泛的应用,MATLAB提供了颜色空间转换,图像平移,图像的缩放,图像的旋转等函数,因此本文采用MATLAB作为该算法的实验平台。
2 基于线性回归的算法线性回归是利用数理统计的分析方法,来确定两种或两种以上变量之间的相互依赖的关系,线性回归的应用范围比较广泛。
线性回归模型经常用最小二乘的方法来拟合,如下图所示一些点均匀的分布在该线的周围,采用最小二乘的方法利用准则函数即可估计出该直线的与水平的夹角。
该直线的斜率:根据上面的公式就能计算出直线的斜率从而获得直线的倾斜角,来完成校正工作。
车牌定位及倾斜校正方法姜谊,严京旗【摘要】提出了一种基于车牌字符信息的车牌定位及其校正方法。
首先使用灰度形态学的顶帽操作(top-hat)增强车牌区域,使其能在二值图中突出显示,然后根据二值图中车牌字符的连通元个数和排列位置来确定车牌的具体位置,最后对已定位的车牌进行方向校正,包括水平和垂直方向校正。
水平校正是根据这些字符连通元的中心确定车牌的水平倾斜角度,使用旋转几何变换使其水平方向得到校正,垂直校正则使用投影分析的方法求出水平校正后垂直方向的倾斜角度,再进行图像的像素平移。
实验结果表明,该方法能够在复杂背景下快速、准确定位到车牌,并且倾斜校正效果很好。
【期刊名称】微型电脑应用【年(卷),期】2010(026)004【总页数】3【关键词】车牌定位;倾斜校正;顶帽操作;连通元0 引言车牌定位和校正对车牌识别系统有着非常重要的作用,快速、准确的车牌定位及校正直接关系到整个系统的性能。
目前车牌定位的方法总的来说可以分为两大类,一类是基于灰度图像的车牌定位,另一类是基于彩色图像的车牌定位。
灰度图像数据量小,处理迅速简单,对于车牌的灰度图像处理的算法中,比较常用的算法有以下几种:(1)基于Hough变化法[1],利用车牌的矩形边框具有比较明显的直线边缘,通过边缘提取,再结合Hough变换检测出车牌边框直线来定位车牌,但是这种方法受车牌图像倾斜的影响较大,另外,还有很多车牌并没有明显的边框直线;(2)基于边缘和数学形态学的车牌定位算法[2,3],通过腐蚀和膨胀以及由其组合而成的开、闭运算,将目标区域显示出来;(3)基于统计学习的车牌检测方法 [4]。
在车牌校正方面,常用的方法有:(1)基于Hough变换算法,寻找车牌边框直线确定车牌水平倾斜角度[5];(2)使用投影法[6],该方法计算量较大,且对于本文所处理车牌图像不是很适用。
本文基于车牌的字符信息提出了一种准确、快速的车牌定位及其校正的方法。
除了水平校正外,还要对这种具有两排字符的车牌,做针对性的垂直校正。
车牌识别中的二值化及快速倾斜校正算法史燕, 吕永战, 张帆(中国空空导弹研究院河南洛阳 471009摘要:根据车牌几何形状和纹理的特点, 提出了基于图像的特征线确定二值化阈值的方法。
为了解决车牌图像倾斜对字符分割与识别带来的不良影响, 对一种基于字符间投影距离的倾斜校正方法做了研究。
在该方法中, 根据倾斜车牌与非倾斜车牌字符的投影距离大小比较来确定车牌图像的倾斜角度, 再用基于双线性插值的旋转方法进行矫正。
针对该方法的不足之处, 提出了该算法的改进算法。
试验结果表明, 该算法是快速而有效的。
关键词:车牌识别; 特征线; 二值化; 投影间距; 倾斜校正中图分类号:T P391. 4 文献标识码:B 文章编号:1004-373X (2009 05-149-04Binary Conversion and Slant C orrection Algorithm in Preprocessing ofLicense Plate RecognitionSHI Y an, L V Yong zhan, ZH A N G Fan(Chi na A i rborne Missile Academ y, Luoyang , 471009, Chi naAbstract :A cco rding t o plate shape and char tex ture, an algo rit hm applied to license plate binar y conver sion of vehicle image based on feature line is intr oduced. In o rder to resolve the difficulties in character segmentatio n and adver se impact to the final recog nitio n r ate, a new metho d is presented based on char acters vert ical project ion distance. T he metho d first analyses the change o f distance betw een t wo character s which comes fr om the vert ical project ion tow ards lean image and hor izo nt al imag e, the lean ang le o f image is found out, and then, a ho rizo ntal image is gained by the ro tatio n based o n bilinear interpolatio n. Co n -sidering the defects of this method, anoptimum alg or ithm is intr oduced. Ex per imenta l r esults ar e pr ov ided to demonstrate the per for mance of the pro po sed alg or ithm.Keywords :license plate recog nitio n; feature line; binar y conver sion; v ertical projection distance; slant co rr ect ion收稿日期:2008-08-120 引言车牌识别技术(License Plate Recog nition, LPR 是计算机视觉与模式识别技术在智能交通领域应用的重要研究课题, 是实现交通管理智能化的重要环节。
3.3.3 提取图形区域(Extracting Graphic Region )图形的描述相对较复杂,考虑到文档图象中常见的图形主要是直线,因此我们在实际处理中仅检测各方向的直线。
由于在文档的光电转换中,如扫描等,常会出现图象倾斜,Stuart 等[30]指出,进行倾斜校正会使压缩比提高1%左右,因此有必要对倾斜的图象进行校正。
同时,使原本水平和竖直的直线更加容易发现。
此外,在图象中除了水平和竖直的直线外,通常还会出现其它方向的直线。
为了能够检测到不是水平或竖直的直线,我们需要构造具有一定方向性的形态学算子。
在本文中,我们检测图象中的各直线段方向,然后构造相应的结构元素将其检测出。
(1) HOUGH 变换 在检测直线中,很容易想到利用Hough 变换[60]。
下面简单介绍Hough 变换。
直线y = mx + b 可用极坐标表示为:)sin()cos(θθy x r +=,也可表示为:yxtg y x r =++=)()sin(22ϕϕθ,其中 式(3.15)其中,(r ,θ)定义了一个从原点到该直线最近点的向量,显然,这个向量与该直线垂直。
如图3.7所示。
图3.7 直线的极坐标表示 Fig3.7 Polar Coordinates of a line考虑一个以参数r 和θ构成的二维空间。
x,y 平面的任意一直线对应了r,θ平面上的一个点。
因此,x,y 平面上的任意一直线的Hough 变换是r, θ平面上的一个点。
现在考虑x,y 平面的一个特定的点(x 0,y 0)。
过该点的直线可以有很多,每一条都对应了r, θ空间中的一个点。
然而这些点必须是满足以x 0,y 0作为常量时的等式。
因此在参数空间中与x,y空间中所有这些直线对应的点的轨迹是一条正弦型曲线,即x,y平面上的任一点对应了r,θ平面上的一条正弦曲线。
式(3.15)也说明其正弦的函数关系。
如果有一组位于由参数r0和θ0决定的直线上的边缘点,则每个边缘点对应了r,θ空间的一条正弦型曲线。
车牌矫正1.从候选车牌区域中扣出包含有车牌的小图(很离奇,一般不是这么做的,作者要求如此)2.分理出车牌区域所在(很关键,直接影响矫正效果)分析:1.如果直接将车牌候选进行常规的分割还是比较困难的,应为转换为普通的灰度图,在进行轮廓检测、提取完全行不通(梯度特征不明显,将检测出字符区域),如下是灰度图:2.进行显著性检测(涉及傅里叶变换,具体不是很懂),检测出显著区域,效果不理想。
如下图所示:3.仔细观察截图可以发现,车牌区域主要为绿色区域,如果我们能直接分离出绿色区域,岂不是很爽,直接矫正即可,于是进行了各种颜色空间的分离,选择RGB、CYCK颜色空间来说明,其中CYCK颜色空间是一种染色空间,织布用的,具体百度之:CYCK颜色空间分离结果:RGB通道分离结果:、4.通过步骤三,具体分析如下,RGB空间分离结果基本不可用,CYCK颜色空间倒是可以考虑考虑,因为其车牌特征比较明显。
于是乎,某人采用比较巧妙地方法分离出车牌区域,将CYCK颜色空间中第一幅图像取反(黑变白,白变黑)与CYCK颜色空间中第四幅图像点乘操作,结果取较小的值分割从而分理处绿色车牌区域。
如下所示为结果(下图为二值图,分割阈值采用0.05的结果,此结果比较理想):可以看到,基本分离出了车牌区域(注意是基本),现在需要做的就是将车牌区域的四个角定位出来,定位的好坏。
3.定位出车牌区域的四个角点1.对上一步的二值图像首先进行腐蚀操作(腐蚀的核比较小),去除边缘干扰白色像素点,再膨胀,去除干扰影响;2.连通中间黑色像素点,即对图像进行膨胀,再腐蚀,其结果如下所示3.对上图进行轮廓提取,即车牌区域的轮廓,并对轮廓进行拟合4.对拟合的轮廓提取四个角点,即四个角点即车牌四边形的四个角点4.用提取的角点对图像进行矫正,转化为正常视图,结果如下:5.代码如下://包悒?含?的?各ô种??文?件t#include"opencv2/opencv.hpp"#include<iostream>//命÷名?空?间?using namespace std;using namespace cv;//从洙甊GB空?间?转羇换?成éCMYK空?间?,?由?pencv 中D没?有瓺这a个?函ˉ数簓所õ以?需è要癮自?己o编括?写′这a个?函ˉ数簓void rgb2cmyk(cv::Mat& src, std::vector<cv::Mat>& cmyk){CV_Assert(src.type() == CV_8UC3);cmyk.clear();//cmyk 容╕器ô清?零?,?否?则ò不?能÷用?at引皔用?其?值μfor (int i = 0; i < 4; ++i)cmyk.push_back(cv::Mat(src.size(), CV_32F));for (int i = 0; i < src.rows; ++i){for (int j = 0; j < src.cols; ++j){cv::Vec3b p = src.at<cv::Vec3b>(i,j);float r = p[2] / 255.;float g = p[1] / 255.;float b = p[0] / 255.;float k = (1 - std::max(std::max(r,g),b));cmyk[0].at<float>(i,j) = (1 - r - k) / (1 - k);cmyk[1].at<float>(i,j) = (1 - g - k) / (1 - k);cmyk[2].at<float>(i,j) = (1 - b - k) / (1 - k);cmyk[3].at<float>(i,j) = k;}}//显?示?代洙?码?,?用??测a试?,?可é以?不?需è要癮,?//?过y测a试?,?得?出?自?己o需è要癮的?东?西ô/*stringstream temp;string temp2;for(int i=cmyk.size();i>0;i--){temp.clear();temp2.clear();temp<<i;temp2=temp.str();imshow(temp2,cmyk.at(i-1));}*/}//开a始?矫?正y的?代洙?码?//输?入?为a矫?正y的?图?像?和í四?个?角?点?,?输?入?图?像?为a二t值μ图?像?//输?出?为a校£正y后ó的?图?像?,//返う?回?值μ为a0表括?示?结á果?不?正y常£,?返う?回?值μ为a1,?表括?示?结á果?很÷正y 常£Mat correct(vector<Point> points,const Mat & srcimg,int width,int height){ // 矩?形?矫?正yif(points.size()!=4)cerr<<"输?入?焦1点?错洙?误ó"<<endl ;//目?标括?点?的?赋3值μ和í确ø?认?Point2f dst[4],src[4];//如?果?width,?height为a0,?则ò将?src的?宽í度è和í高?度è作痢?为a矫?正y的?基õ准?if(width==0&&height==0)height=srcimg.rows,width=srcimg.cols;//最?终?焦1点?位?置?// 0**************1// 2**************3dst[0] = Point2f(0,0);dst[1] = Point2f(width, 0);dst[2] = Point2f(0, height);dst[3] = Point2f(width, height);//起e始?点?的?选?取?//确ø?定¨中D心?位?置?Point2f center=Point2f(.0,.0);for(int i=0;i<4;i++){center.x+=points[i].x;center.y+=points[i].y;}center.x/=4;center.y/=4;//初?始?角?点?位?置?//0************1//2************3int ptnum;for( int j = 0;j < 4; j++ ){if(points[j].x>center.x&&points[j].y>center.y) ptnum=3;else if(points[j].x<center.x&&points[j].y>center.y) ptnum=2;else if(points[j].x>center.x&&points[j].y<center.y) ptnum=1;else if(points[j].x<center.x&&points[j].y<center.y) ptnum=0;src[ptnum]=points[j];}//Create and rotate imageMat undistorted = Mat(Size(width, height), srcimg.type(),Scalar(0));warpPerspective(srcimg, undistorted, cv::getPerspectiveTransform(src, dst), Size(width, height));return undistorted;}//作痢?为a漫t水?填?充?的?临ⅷ?时骸?图?像?,?将?原-图?扩?大洙?一?被?Mat changeSize(Mat& src){int xsize = src.cols;int ysize = src.rows;//临ⅷ?时骸?图?像?,?保馈?存?临ⅷ?时骸?图?像?Mat cloneImg = Mat(ysize*2,xsize*2, CV_8UC1,Scalar(0));//起e始?点?坐?标括?int startAtX =xsize/2;int startAtY =ysize /2;//设Θ?置?操õ作痢?区??Mat temp=cloneImg(Rect(startAtX,startAtY,xsize,ysize));src.copyTo(temp);return cloneImg;}int main(int argc, char *argv[]){//读á入?图?片?Mat src, dst;src=imread("pic3.jpg",1);if(!src.data)return -1;//将?原-图?进?行D颜?色?空?间?转羇换?,?cyck颜?色?空?间?转羇换?效§果?vector<Mat> cmyk,RGB,HSV;rgb2cmyk(src,cmyk);//CYCK颜?色?空?间?分?离?cv::Mat im1;im1 = cmyk[0].mul(1 -cmyk[3])>0.06;//膨ò胀í前©需è要癮将?原-图?扩?大洙?,?否?则ò因皑?为a边?缘μ会á导?致?腐ˉ蚀骸?失骸?败悒?Mat gray,im2;im1.convertTo(im1, CV_8U);imshow("result1",im1);gray=changeSize(im1);//开a始?膨ò胀í和í腐ˉ蚀骸?Mat kernel0= (Mat_<uchar>(3,3)<<0,1,0,1,1,1,0,1,0);Mat kernel1 = Mat(17,17,CV_8U,Scalar(1));//图?像?腐ˉ蚀骸?,?去ǎ?除y边?缘μ白恪?色?像?素?点?,?erode(gray, gray, kernel0);//imshow("erode",gray);//图?像?膨ò胀í,?将?白恪?色?像?素?点?扩?大洙?,?去ǎ?除y中D心?亮ⅷ?的?像?素?点? 核?较?小?,?去ǎ?除y边?缘μ白恪?色?像?素?dilate(gray, gray, kernel0);//imshow("dialate",gray);//图?像?膨ò胀í,?将?白恪?色?像?素?点?扩?大洙?,?去ǎ?除y中D心?黑ö色?的?的?像?素?点? 核?较?大洙?dilate(gray, gray, kernel1);imshow("dialate",gray);//图?像?膨ò胀í,?去ǎ?除y膨ò胀í边?缘μ效§果?erode(gray, gray, kernel1);imshow("erode",gray);//取?原-图?的?im2=gray(Rect(gray.cols/4,gray.rows/4,gray.cols/2,gray.rows/2));im2.copyTo(gray);//开a始?寻©找ò边?缘μ,?此?处鋦构1建¨边?缘μ存?贮÷变?量?vector<vector<Point>> contours;// find contoursfindContours(gray,contours,CV_RETR_EXTERNAL,CV_CHAIN_APPROX_NONE);//轮?a合?,理え?论?上?为a最?大洙?,?approxPolyDP(contours[0], contours[0], 4, true);//画-出?拟a合?轮??并¢显?示?Mat result(gray.size(),CV_8U,Scalar(0));drawContours(result,contours,CV_FILLED,Scalar(255),1);imshow("result",result);//开a始??取?角?点?vector<Point> scrs;goodFeaturesToTrack(result,scrs,4, // maximum number of corners to be returned0.1, // quality level10); // minimum allowed distance between points//?示?函ˉ数簓if(scrs.size()!=4)cerr<<endl<<"?取?的?角?点?数簓量?是?; "<<scrs.size()<<endl;//画-出?角?点?//画-角?点?的?临ⅷ?时骸?变?量?Mat External;src.copyTo(External);// 函ˉ数簓原-型í声Θ?明ô//void convertTo( OutputArray m, int rtype, double alpha=1, double beta=0 ) const;External.convertTo(External,CV_8UC3,1,0);for(int v=0;v<scrs.size();v++){circle(External,scrs[v],3,CV_RGB(0,255,0),1);}imshow("角?点?",External);//开a始?矫?正yMat out;out=correct(scrs,src,0,0);imshow("out",out);//图?像?显?示?暂Y?函ˉ数簓char c=(char)waitKey(0);if(c!=(char)waitKey(0))waitKey(0);return 0;}。
基于数学形态学车牌自动定位和倾斜校正
魏志光;和青芳
【期刊名称】《北京联合大学学报(自然科学版)》
【年(卷),期】2014(028)002
【摘要】针对车牌识别系统中,由于光照变化、背景复杂、车牌褪色或相对摄像机位置不同带来的图像倾斜等原因,导致车辆图像质量不高,影响车牌定位和识别.基于优化组合数学形态学基本运算,结合灰度信息离散化对车牌初定位,再利用先验知识,对车牌进行精确定位,最后采用两点法对倾斜的车牌图像进行检测和校正.实验结果表明,得出的定位和倾斜校正方法简单、快速,且具有较好的稳定性.
【总页数】5页(P38-42)
【作者】魏志光;和青芳
【作者单位】北京联合大学北京市信息服务工程重点实验室,北京 100101;北京联合大学北京市信息服务工程重点实验室,北京 100101
【正文语种】中文
【中图分类】TP391.41
【相关文献】
1.基于数学形态学及车牌综合特征的车牌定位算法 [J], 薛冰;王斌斌;刘荣辉
2.基于数学形态学的车牌定位与倾斜校正的方法 [J], 程磊;程伟
3.基于数学形态学与投影法的车牌定位 [J], 罗山
4.基于颜色处理和数学形态学的车牌定位方法 [J], 贺智龙;
5.基于改进数学形态学的车牌定位 [J], 罗山
因版权原因,仅展示原文概要,查看原文内容请购买。
沈算子在倾斜车牌校正中的应用摘要:提出了一种新的车牌倾斜校正方法,该方法首先根据沈算子检测出车牌边缘,然后将车牌区域平均划分为左右两个部分,分别计算这两个区域的重心,连接两个部分的重心,最后,计算出重心与水平方向的夹角,并按此夹角进行旋转。
实验证明,这种方法简单、实用,对光照、污迹等不敏感,抗干扰能力强。
关键词:沈算子;车牌边缘;边缘检测;倾斜校正;车牌重心0引言目前,智能交通系统已广泛应用于交叉路口监控、停车场监控以及高速公路收费等场合。
随着交通信息化越来越发达,交通智能化的研究理所当然成为研究热点之一。
车牌识别是计算机视觉与模式识别技术在智能交通领域应用中的一个重要研究课题,一个完整的车牌识别系统主要分为车牌定位、倾斜车牌校正、车牌识别几个步骤。
其中车牌图像往往会受到采集镜头与车牌之间的距离、道路坡度、汽车驾驶速度、天气、光照以及司机所挂车牌位置的影响等,我们所采集到的车牌图像往往会有一定程度的倾斜,给车牌字符分割和识别造成影响,车牌的倾斜校正是车牌图像识别至关重要的一步。
本文采用沈算子提取车牌边缘,然后根据图像重心计算出车牌倾斜角度。
实验表明,该算法具有运算速度快、抗噪效果好等特点。
1边缘检测1.1预处理由于相机成像的非均匀性,以及环境噪声影响,采集到的图像往往并不理想,在对图像进行其他操作以前,一般需要对图像进行预处理,例如使用A/D转换器将模拟信号转化成计算机可以处理的数字信号等。
图像在计算机中以二维矩阵的形式存储,以图像中每个点的灰度值或灰度级作为图像矩阵的元素。
彩色图像处理起来,算法比较复杂,在这里我们先把彩色图像(RGB)转换成灰度图像(Gray)。
1.2沈算子边缘检测本文选用二阶微分算子,即沈俊算子,通过寻找过零点,以完成边缘提取。
相比其他二阶微分算子,如Laplacian算子,沈俊算子实现简单,它只需要一个参数a0,而且具有很好的抗噪能力。
车牌边缘含有大量的视觉信息,我们要把车牌的边缘检测出来,为接下来的工作做好准备。
第31卷 Vol_3l 第3期
No.3 重庆理工大学学报(自然科学)
Journal of Chongqing University of Technology(Natural Science) 2017年3月
Mar.2017
doi:10.3969/j.issn.1674-8425(Z).2017.03.014 基于区域划分和霍夫变换的车牌倾斜校正 王越,黄龙超,李琴 (重庆理工大学计算机科学与工程学院,重庆400054) 摘 要:针对车牌倾斜会降低字符分割和识别准确率的问题,提出了基于区域划分和霍夫 变换的倾斜校正方法。定位后的车牌在垂直方向根据阈值划分成高度相同的等分域,然后通过 霍夫变换取得所有区域的最大角度值为水平角度值,同样在水平方向从两侧往中间划分等分 域,通过霍夫变换取两侧最大角度值为垂直倾斜角度,对水平倾斜进行双线性插值旋转校正,对 垂直倾斜进行错位偏移校正。通过区域划分的方法,可以有效降低霍夫变换搜索的区域,从而 提高校正速度。实验结果表明:该算法简单、正确率高、鲁棒性好。 关键词:车牌识别;倾斜校正;霍夫变换;区域划分 中图分类号:TP18 文献标识码:A 文章编号:1674—8425(2017)o3—0097—08
License Plate Tilt Correction Based on Region Partition and Hough Transform
WANG Yue,HUAG Long—chao,LI Qin (College of Computer Science and Engineering, Chongqing University of Technology,Chongqing 400054,China)
Abstract:License plate tilt will reduce the accuracy of character segmentation and recognition.A license plate tilt correction method based on region partition and Hough transform is proposed.Firstly, positioning the plate was divided into equal height regions along vertical direction according to threshold.Then through the Hough transform to obtain the maximum angle of all regions is the horizontal angle.equally in the horizontal direction from both sides to the middle division of the sub— regions,and the maximum angle between the two sides and the middle of the hough transform is the ve ̄ical tilt angle.and the bilinear interpolation rotation correction is carried out on the horizontal inclined and the venical tilt correction dislocation of the offset.By the method of region division,we
收稿日期:2016—12—30 作者简介:王越(196l一),男,博士,教授,主要从事数据库技术及应用、数据挖掘及其应用、嵌入式系统及应用研究,
E—mail:wangyue@cqut.edu.cn;黄龙超(1993一),男,硕士研究生,主要从事计算机图像研究。 引用格式:王越,黄龙超,李琴.基于区域划分和霍夫变换的车牌倾斜校正[J].重庆理工大学学报(自然科学),2017
(3):97—104. Citation format:WANG Yue,HUAG Long—chao,LI Qin.License Plate Tilt Correction Based on Region Partition and Hough Transform『J1.Journal of Chongqing University of Technology(Natural Science),2017(3):97—104. 98 重庆理工大学学报 can effectively reduce the search area of Hough transform and improve the speed of correction.The experiment results show that the algorithm is simple,and the accuracy is high and the robustness is strong. Key words:license plate recognition;tilt correction;Hough transform;region partition
车牌识别在现代交通中显得越来越重要,被 广泛应用在停车场、机场等车辆频繁出入的场所 中。车牌识别主要由车牌定位、字符校正、字符分 割和字符识别4部分组成。由于车牌字符的倾斜 常常为字符分割和字符识别带来困难,因此在字 符分割之前,通常需要对车牌字符进行倾斜校正。 车牌的倾斜通常是由于拍摄位置和车牌位置 存在一定角度所导致。车牌的倾斜往往会对后续 操作产生影响,因此车牌倾斜校正是字符分割和 识别成功率提高的关键所在。 车牌的倾斜主要有3种:水平方向、垂直方 向、混合方向(水平和垂直方向)。现在主要的倾 斜校正方法有Radon变换法¨ J、霍夫变换法 (Hough) 、旋转投影法 、线性拟合法 、K—L变 换 J。这些单一的方法都存在不足。Radon变换 法对边框不敏感,但是计算量大。霍夫变换对边 框敏感,若边框缺失,会造成检测到的角度与正确 的倾斜角度误差很大。旋转投影法通过穷举法, 给定一个角度阈值范围,然后在每个角度进行垂 直方向的旋转,最后统计落在水平方向最少白色 像素点的角度为垂直倾斜角度。虽然该方法倾斜 校正的角度比较准确,但是运算量巨大,花费时间 较长,不满足车牌识别的实时性要求。K.L变换 也称为主成分分析法,要求车牌的定位精准,不包 含噪声,并且受二值化效果的影响,因此该方法容 错率低。 针对以上问题,本文提出了基于区域划分和 霍夫变换相结合的方法。该方法主要解决了 Hough变换对边框的敏感性,并且通过区域划分 和边缘检测算子减少Hough变换搜索的区域,从 而提高搜索速度。针对Hough变换对边框的敏感 性,本文算法在实现精确定位的基础上,首先在定 位图像的垂直方向和水平方向的上下增加一个阈
值高度,可以解决Hough变换无边框的情况。再 通过边缘检测算子对二值图像进行水平和垂直方 向的边缘检测,然后将经过边缘检测的二值图像 在垂直方向划分成等区域的高度。在水平方向的 区域划分的宽度小于高度。这样通过Hough变换 检测到最长的直线是有一定角度的倾斜的线条 (车牌边框二值线)。通过Hough变换得到水平和 垂直方向的角度,先对水平方向进行校正,再在垂 直方向上对每行元素进行错位纠正。
1图像预处理 定位后车牌的图像预处理是进行车牌倾斜校 正前必不可少的工作,也是提高倾斜校正算法成 功率的关键之一。本文的图像预处理主要由4部 分组成:图像灰度化、图像归一化、图像去噪、图像 边缘检测。 1.1图像灰度化 获取图像一般是彩色图像,由RGB彩色元素 构成的三维矩阵。一般可以对彩色图像进行加权 处理来得到灰度图像。本文选择R、G、B的权值 系数分别为:0.229、0.587和0.114_7]。 1.2图像归一化 由于灰度处理后的图像每个像素点的值在 0~255,采取归一化的方法把每个像素点的值变 换到0~1。假设得到的灰度图像为A,其归一化 原理如下: delta=1/(max(A)一min(A)) (1) B=(A—min(A))¥delta (2) 式中:max(A)是矩阵A中所有元素最大值;min (A)为矩阵A中所有元素的最小值; 是归一化后 的矩阵。 1.3 图像去噪 由于车牌图像存在着图像光照不均匀以及车 王越,等:基于区域划分和霍夫变换的车牌倾斜校正 牌污染、图像模糊等情况,本算法采用非平滑技术 中的中值滤波方法,它能有效消除孤立点,达到去 噪的效果。由于直方图反映了图像的清晰程度, 当直方图分布均匀时,图像达到最清晰,并且该方 法对于背景和前景都太亮或者太暗的图像非常有 用,可以解决光照不均的情况,因此本文在滤波后 采取直方图均衡化方法。 1.4图像边缘检测 由于车牌的边框的内外含有明显的边缘变 化,因此可以明显检测到车牌边框的边缘。现在 常用的边缘检测算子有sobel、canny。本文在车牌 水平方向上选取了sobel算子,在垂直方向上选择 了canny算子。下面以sobel算子为例进行介绍。 Sobel算子的的卷积核: 厂~1 0 1] l-二
。0;J
r 1 2 1] =I o o o J l
一1 —2 —1j
式中,G 和G 分别代表经横向及纵向边缘检测的 一个卷积模板,G 可由G 旋转90。得到。 分别将式(3)中的卷积核与式(2)中的灰度 矩阵 做卷积: G肌=Gx:lc B,GB =G B (4) 对式(3)和式(4)进行运算。令 (口,b)表示图像 在矩阵B的(n,b)点的灰度值,运算结果如下: GBx=(一1) ( 一1,Y一1)+ 0 ( ,Y一1)+1 B(X+1,Y一1)+ (-2) B(x一1,Y)+0 ( ,Y)+ 2术 ( +1,Y)+(一1)术 ( 一1,Y+1)+ 0 曰( ,Y+1)+1;l:8(x+1,Y+1) (5) G =1¥B(x一1,Y一1)+2:Ic ( ,Y一1)+ 1{B( +1,Y一1)+O;l: ( 一1,Y)+ 0:}:B( ,Y)+0 ( +1,Y)+
(一1)=l=B(x一1,Y+1)+ (-2);l:曰( ,Y+1)+ (一1) 曰( +1,Y+1) (6) 由式(5)和式(6)化简可得: Gm=[B( +1,Y一1)+2%B( +1,Y)+ 8(x+1,Y+1)]一[ ( 一1,Y—1)+ 2:l:B( 一1,Y)+B( 一1,Y+1)] (7)