霍夫变换+最小二乘法 直线检测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
霍夫变换中直线拟合的最小二乘法
ichriZ 1.基本概念
(1)霍夫变换
霍夫变换(Hough Transform) 是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。最基本的霍夫变换是从黑白图像中检测直线或线段。
(2)最小二乘法
曲线拟合方法的一种,通过最小化误差的平方和寻找数据的最佳函数匹配。
2.适用情况
霍夫变换是基于统计的方法,能将图像中的噪声或干扰点的影响消除,但其结果存在精度不够与直线有效区间不易控制的问题;最小二乘法是直线拟合的有效方法,但直接用于拟合时易受干扰点或噪声点影响。在检测图像中的直线段时,先利用霍夫变换消除无效点的影响,再结合最小二乘法法进行拟合,可以提高检测效果。
3.霍夫变换原理与实现方法
(一)霍夫变换原理
在平面直角坐标系中一条直线,任取其上一点,有
表示参数平面中的一条直线。再取上另一点则有
表示参数平面中的一条直线。与相交于一点,对应于坐标系
中直线
即:同一直线上的不同的点在对应的参数平面中对应不同的直线,但都交于同一点,所以可以通过坐标系中的交点来寻找坐标系中的直线。当坐标系中的直
线数量为R时,坐标系中对应R个峰值交点,它们对应于坐标系中的R 条直线。
此种方法不能够表示这类直线,实际中常将原有直线表示为参数方程
此直线上的点对应坐标系中的一族三角函数曲线,它们在有效区间内交于一点
,对应于坐标系中的。下图是一个具体例子:
交点坐标
(二)最小二乘法原理
对于给定数据,要求在某个函数类
中寻求一个函数
,使
本文中讨论的是直线的最小二乘法,故均取一次多项式。
设具有如下格式
霍夫变换—>
其中是待定参数,求具有这种形式的最小二乘法的实
质,就是要适当的选择参数,使相应的函数
满足条件。也就是说,点是多元函数
的极小点,从而满足方程组
因此,可以通过解此方程组(称为法方程组)来求取,以便
获得最小二乘解。
当讨论的曲线为代数多项式时,不妨取
则有
令得方程组
即
本文中模拟的是直线,使用一次多项式,则约束条件为
其中直线表达式为
(三)霍夫变换的实现方法
图像处理中的二值边缘图,一般是处理离散数据,则根据霍夫变换可按下列步骤实现直线检测:
(1)参数空间量化成m*n(m为的等分数,n为的等分数)个单元,并设置累加器矩阵;
(2)给参数空间中的每个单元分配一个累加器,并把累加器的初始值置为0;
(3)取出直角坐标系中的点
带入式,并以量化的值计算出;
(4)在参数空间中,找到和所对应的单元,并将该单元的累加器加1,即
(5)当直角坐标系中的点都经过(3)(4)两步遍历后,检测参数空间中每个累加
器的值,累加器最大的单元所对应的和即为直角坐标系中直线方程式的参数。
由上述霍夫变换过程可知,如果参数空间中的和量化过粗,则参数空间中的
凝聚效果较差,找不出直线的准确参数和;反之,和量化过细,那么计算
量将增大。
另外,当直角坐标系中的点分布在R条直线附近时,可在第5步检测累加器时,
取出累加器中前R个值最大的单元所对应的和,以和为直角坐标系中直
线方程式的参数,即可同时实现多条直线的拟合。
4.霍夫变换与最小二乘法相结合的直线拟合方法
假设采集到的数据为,s为数据集中的数据点数,M中改的数据点分布在R调直线附近,根据实验目的要求给定误差阈值为d k。
(1)霍夫变换。将式改写成
根据式,对M作霍夫变换,可得拟合直线的参数。
(2)找出拟合直线附近的点集。将式表示的法线式直线方程改写成斜截式
其中
计算M中的点到由式确定的直线的距离
如果
则
为符合误差阈值要求的第k条霍夫变换直线附近的点集。
(3)以点集为拟合数据,分别拟合各直线,可得直线方程式的参数。
以和为端点,可确定各直线段的区间,
即
5.简单实现
编程环境:Windows7+Qt5+OpenCV2.4.3
实验测得数据:
X坐标36 48 63 72 84 97 108 120 143
Y坐标78 88 101 109 119 130 140 150 170
原图像经过二值化处理的图像检测结果
6.参考文献
曾接贤, et al. "霍夫变换与最小二乘法相结合的直线拟合." 南昌航空工业学院学报(自然科学版) 4 (2003).
Hough, Paul VC. "Method and means for recognizing complex patterns." U.S. Patent No. 3,069,654.
18 Dec. 1962.