江磊 张仁杰
摘 要:研究畸变图像处理的方法较多,这些方法提高了算法可靠性、完善了算法可行性,但如何提取畸变图像的有用信息进行再校正的理论和方法却不多。为此提出一个新的算法,结合Hough变换和透视变换,在畸变图像中自动选取有用的目标图像区域并提取出来,最后通过透视变换将其进行图像校正与还原。MATLAB仿真实验结果表明,该方法精度高、容错性高、稳定性好,可广泛应用到模式识别等领域。
关键词:Hough变换;透视变换;目标图像;图像校正;模式识别
DOI:10. 11907/rjdk. 181675
中图分类号:TP312文献标识码:A文章编号:1672-7800(2019)001-0099-05
Abstract: The research on the algorithms of perspective distortion is increasing, which not only improves the reliability of the algorithms, but also improves the feasibility of the experiment. However, there are not many researches on how to extract the useful information of a distorted image. In this paper, a new algorithm is proposed to combine Hough transform and perspective transform. A useful target image region can be automatically selected and extracted from the distorted image, and the image is corrected and restored by perspective transformation. MATLAB simulation results show that this method has high precision, high fault tolerance and good stability, and can be widely used in pattern recognition.
0 引言
目前对透视投影产生畸变现象的图像校正研究方法主要分为角度检测法、控制点变换法和射影几何法3大类[1-3]。在图像处理过程中,由于受限于镜头的精度、成像系统的非线性以及在获取图像拍摄过程中所采用的角度和距离等因素,获得的图像都存在透视畸变。介炫惠[4]在进行透视变换时使用开源图像库 OpenCV,根据摄像机参数直接由程序计算得到变换矩阵。金美玉[5]则使用 DSP进行透视变换计算,但实时性问题导致不能得到完整的透视变换图像。李建华[6]在处理二维条码运算时,其 VLSI 实现中包括有透视变换功能,存储机制使用的是片外 sram,在片上使用 sram 控制器进行访问。史忠科[7]等设计的透视变换FPGA实现方案采用外部的ram存储图像。这些透视变换研究均是作用于整个畸变图像,在实际应用中往往需要提取畸变图像中的有用信息,再进一步校正得到其正视图,这样不仅有利于边缘检测和轮廓提取等操作,还有利于直观解读所需要的图像信息,所以畸变图像校正受到关注。尽管畸变图像研究方法日趋成熟,但自动对畸变图像中的有用信息进行提取并校正的方法并不多。
基于上述原因,本文提出一种改进的图像校正方法。该方法可实现对畸变图像中有用的目标区域自动提取并裁剪,然后将提取后的图像通过Hough变换[8]及透视变换进行处理,使处理后的图像以正视图形式呈现。MATLAB仿真实验表明,本文提出的算法成功率较高,可以较好地完成对畸变图像目标区域的校正与还原。
1 理论基础
1.1 Huogh变换理论
Hough变换是识别几何形状的基本方法之一,应用十分广泛。Hough变换主要用于从图像中分离出具有某种相同特征的几何形状。相比于其它方法,检测直线和圆可更好地减少噪声干扰,经典的Hough变换一般用来从黑白图像中检测直线(线段)。
Hough变换的基本原理是利用点与线之间的对偶性,将原始图像空间给定的曲线通过该形状的数学表达形式变换为参数空间的一个点,这样就将原始图像给定的曲线检测问题转化为参数空间峰值检测问题[9-11],也就是把检测整体特性转化为检测局部特性。因此,本文可直观地看到Hough变换检测出的直线。作为一个特征提取技术,利用一种投票算法达到检測特有形状物体的目的。
根据直线的数学表达式可知,任意一条直线在图像的二维空间可由两个变量表示,设在笛卡尔坐标系中参数斜率为m,截距为b,则该直线可由参数斜率和截距(m,b)表示。同理,在极坐标系中,设定参数极径为s,极角为θ,则该直线可由参数极径和极角(S, θ)表示,如图1所示。
对于任意一点(x0,y0),可定义为所有通过这个点的直线表达式为式(3),同理,这也表示每一对(Sθ,θ)代表一条通过点(x0,y0)的直线。通过分析可知,一条直线能够通过在平面θ-S寻找交于一点的曲线数量进行检测,而越多曲线交于一点则表示该交点代表的直线由更多的点组成。设置直线上点的阈值定义和计算多少条曲线交于一点则认为检测到了一条直线,这就是Hough变换实现的功能。利用Hough变换可追踪图像中每个点所对应曲线之间的交点。如果通过Hough变换发现交于一点的曲线数量超过了阈值,则可确定这个交点所表示的参数(sθ,θ)在原图像上为一条直线。
Hough变换的运算过程与其它确定直线的方法相比较为简单,对参数的依赖性较小。由于利用了图像的全局特征,在变换过程中考虑了像素和局部边缘方向的关系,所以得到的边缘方向准确度较高,受噪声和边界的影响较小。
1.2 透视变换理论
当人在玻璃窗内向玻璃窗外观察建筑物时,会有无数条视线与玻璃窗相交,如果把各交点连接起来则成为透视图,这种现象称为透视投影。透视投影标准模型如图2所示。
假设观察者站于E点观察,所观察的视平面P垂直于Z轴,如图2所示,该视平面的四边分别与X轴和Y轴平行,通常取近截面P′为视平面,观察者通过可视区域将视线从近截面P′投影到远截面P,得到所需的透视图。
透视变换:将图片投影到一个新的视平面也称作投影映射。由于观察者的观察角度和成像面是固定的,根据物体转动等一系列变换,视线经过近截面投影到远截面时会产生一定的夹角,即产生透视畸变,这样会投影出一个新的矩形,如图3所示。
2 自动确定目标区域算法流程
本文的重点是实现畸变图像中目标区域的自动提取及剪裁。通过输入图像对其分别进行预处理、求最大外接矩形、形态学操作,从而找到目标区域框架,进一步对其进行Hough变换[14]。通过Hough变换找到目标区域边框所在直线,求出其顶点,确定目标区域所在位置。算法流程如图4所示。
2.1 图像预处理
图像预处理是将每一个图像分捡出来然后交给图像识别模块进行识别。由于各种环境中的噪声以及图像在传输和接收过程中产生的噪声会降低图像质量,为得到更清晰的图像就要对图像进行预处理等操作[15]。
图像预处理目的是消除图像中多余的无关信息,恢复和保留有用信息,增强对有用信息的可检测性和最大限度地简化数据,从而达到改进特征提取、图像分割、匹配和识别可靠性的目的。本文以图5为例进行实验和分析。
2.2 求最大外接矩形
求最大外接矩形操作见图8。若任意物体边界已知,用其外接矩形尺寸刻画它的长宽是最简便的方法。通过计算得到反映物体形状及特征的主轴方向上的长度和与其垂直方向上的宽度,这样的外接矩形即物体的最小外接矩形。
图9 (a)显示对每个连通域建立的最小外接矩形,图9(b)显示保留最大外接矩形,图9(c)表示剪裁之后选出的最大外接矩形,即目标区域。通过实验结果可以得出最终选出的目标区域图像,已基本排除了背景上无关信息长线条的干扰。
2.3 形态学操作与目标区域框架
通过边缘检测得到的目标区域边框会有许多断点,为了将断点连接上,本文提出对整张图像进行形态学操作膨胀处理。该操作的作用是将与物体接触的所有背景点合并到物体中,使目标区域增大,填补目标区域空洞。之后对图像进行桥接,桥接完后即得到一个封闭的框。接下来对这个封闭框进行填充,使目标区域更加明显地凸显出来。图10为该形态学操作流程。
由图11可知,图11(a)、图11(b)、图11(c)分别表示图像经过膨胀、桥接及填充后的效果,从图11(c)可看出除目标区域外还有一些干扰的小区域信息也被填充,此时只需保留图像中被填充区域最大的部分(目标区域)即可,这样就排除了其它干扰信息的存在。
进行二值图像的边缘检测可得到图12。
2.4 Hough变换操作与找顶点操作
对原始彩色图像处理[19-20]后得到本文实验所需的目标区域边框,对该目标区域边框进行Hough变换操作。Hough变换的核心就是公式(3),X、Y是原xoy平面的横纵坐标,如图1所示。对于xoy空间上处于同一直线上的每一点坐标x、y,对应的S(θ)都满足上述公式。因此,如果换算到SOθ空间,在xoy空间内同一条直线上的每一点在SOθ空间都将变为直线且相交于同一点,此时在该点相交的次数越多代表原xoy空间直线越长。通过实验对图10中的目标区域边框进行Hough变换操作,得出結果如图13所示。
利用Hough变换确定边框所在直线如图13中灰色区域所示。找到4条直线,由于[C24]= 6即得出6个交点,通过排除坐标为负值的点并计算出离原点最近的4个点,按照4个点的横纵坐标大小,即可判断左上、左下、右上和右下4个点,至此成功找到目标区域的4个顶点。透视变换可将一个倾斜矩形转变为一个不倾斜矩形,通过原四边形的顶点和新矩形的顶点之间的矩阵变换关系,根据公式(4)和公式(5)将这个变换矩阵作用到全局图像,这样目标区域通过矩阵变换被校正为一个正视图,如图14所示。再一一将原来图像中每个像素点所对应的图像信息还原到校正后的图像中去,就完成了对目标区域图像内容的提取以及校正。
3 试验结果与分析
为保证实验可靠性及算法可行性,本文选择边缘较为清晰的样本进行大量实验并进行成功率统计。借助MATLAB软件进行仿真分析,仿真条件为Intel I7四核CPU,2.6GHz, 16GB ROM, 1TB硬盘,Win10系统笔记本电脑。通过对不同场景下的各种畸变图像进行实验和对比分析,证明该算法可行稳定。实验过程中也发现些许不足,如算法中所涉及的Hough变换计算量大、精确度较低,后续研究会着重在这两个方面进行优化和提高。对100张样本图像进行算法实验和分析,实验成功率为87%。采用本文算法以图5示例图像得出最终结果如图15所示。由实验结果可知该算法有效地去除了背景等无关信息,能将有用信息自动提取并加以校正。
4 结语
针对畸形图像进行目标区域自动提取和校正等问题,本文给出了一个可行性较高的算法方案。在此算法基础上可更好地运用Hough变换以及透视变换,达到自动提取目标区域、排除无关信息并对目标区域进行校正的目的。Hough变换充分体现了其从检测整体特征到检测局部特征的特点,以及像素和边缘方向性的关系,从而很好地抑制了噪声,不仅保证了边缘信息的质量,还有效提高了算法效率。利用透视变换可将图片投影到一个新的视平面,通过投影映射尽可能地还原出畸形图像的信息内容。本文设计的算法实现了对畸形图像目标区域的自动提取与剪裁,减少了手动输入图像位置信息的时间成本,提高了精确性,有一定研究及实用价值。
参考文献:
[1] 李立钢,刘波,尤红建,等. 星载遥感影像几何精校正算法分析比较[J]. 光子学报,2006,35(7):1028-1034.
[2] 辛舟,龚俊. 空间复合角构成倾斜面加工角度的变换[J]. 机械设计与制造,2003(5):97-98.
[3] 何援军. 透视和透视投影变换—论图形变换和投影的若干问题之三[J]. 计算机辅助设计与图形学学报,2005,17(4):734-739.
[4] 介炫惠. 道路交通标线的检测算法研究[D]. 长沙:中南大学,2012.
[5] 金美玉. 基于反透视变换的图像分割方法的研究与软件实现[D]. 保定:华北电力大学,2007.
[6] 李建华. 二维条码图像处理算法及其VLSI设计研究[D]. 成都:电子科技大学,2013.
[7] 史忠科,王闯,贺莹. 基于FPGA的逆透视变换方法[J]. 计算机测量与控制,2016(8):152-157.
[8] 冠玮,平西建,程娟. 基于改Hough变换的文本图像倾斜矫正方法[J]. 计算机应用,2007,27(7):1813-1816.
[9] RAFSANJANI M K, VARZANEH Z A. Edge Detection in Digital Images Using Ant Colony Optimization[J]. Computer Science Journal of Moldova, 2015, 23(3): 343-360.
[10] 李敏. 高分辨率合成孔径雷达图像高速公路检测法 [J]. 计算机应用, 2011, 31(7): 1825-1828.
[11] 高翔,梁志伟,徐国政. 基于Hough空间的移动机器人全局定位算法[J]. 电子测量与仪器学报, 2012, 26(6): 484-490.
[12] GUAN LING.Front Matter Multimedia Image and Video Processing[M]. Boca Raton;CRC Press LLC,2001.
[13] EKALP A M.Digital Video Processing[M]. 第2版. 北京:清华大学出版社,1998:165-166.
[14] 陈国栋. Hough变换改进算法研究[D]. 哈尔滨:哈尔滨工业大学,2007:9 -19.
[15] RAFAEL C,GONZALEZ,RICHARD E. Digital Image Processing[M]. 北京:电子工业出版社, 2011.
[16] 易玲. 基于分级的快速霍夫变换直线检测[J]. 微计算机信息,2007,11(1):206-208.
[17] 孙丰荣,刘积仁. 快速霍夫变换算法[J]. 计算机学报,2001,24(10):1104-1109.
[18] 月芳,张云峰,刘扬,等. 基于相位编组的Hough变换提取海天线算法[J]. 液晶与显示,2010,25(6):901-908.
[19] BCHER T, CURIO C, EDELBRUNNER J, et al. Image processing and behavior planning for intelligent vehicles[J]. IEEE Transaction on Industrial Electronics, 2003, 50(1): 62-75
[20] YAN H P, WANG Z Y, GUO S. A method for 2D bar code recognition by using rectangle features to allocate vertexes[J]. Lecture Notes in Computer Science, 2006(5):99-107.
(責任编辑:杜能钢)