当前位置:   article > 正文

数字图像处理—图像分割—哈夫(Hough)变换及哈夫变换原理—检测直线

哈夫变换

1、检测直线

n个点在一条直线上,连续的满足直线方程;同样,离散的也满足直线方程。


直线解决方法:先确定所有有任意2点决定的直线(需约次运算以确定n(n - 1)/ 2条线)。在找出接近具体直线的点的集合(需约次运算以比较n个点中的每一个与n(n - 1)/ 2条直线中的每一条),这样计算量太大。


☞哈夫变换的方法:可用较少的计算量来解决这个问题。

哈夫变换利用点—线的对偶性(duality)

(1)在图像空间中共线的点对应在参数空间里相交的线。

(2)在参数空间中相交于同一个点的所有直线在图像空间里,有共线的点与之对应。


图像空间XY中过点的直线上的每一点都对应在参数空间PQ里的一条直线,这些直线相较于点(p’,q‘)。


☞哈夫变换检测直线的具体实现原理(过程):


●在参数空间PQ里建立一个两维的累加数组。设这个累加数组为A(p,q),其中[Pmin,Pmax]和[Qmin,Qmax]分别为预期的斜率和截距的取值范围。

●开始时置数组A为零,然后对每一个图像空间中的给定点(x,y),让p取遍P轴上所有可能的值,并算出对应的q = -px + y。(x,y固定)

●再根据p和q的值(设都已经取整)对A累加:A(p, q) = A(p,q)+1。

●累加结束后,根据A(p,q)处共线点的个数。同时(p,q)值也给出了直线方程的参数,使我们得到了点所在直线的方程。

●如果共线,则有相同的p,q,A(p,q)则可以不断累加。


☞哈夫变换在极坐标下检测直线(能检测垂直于X轴的曲线,θ为90°)

●如果直线接近竖直方向,会由于p和q的值都接近无穷而使计算量大增,此时可用直线的极坐标方程:

●根据这个方程,原图像空间中的点对应新参数空间中的一条正弦曲线,即原来的点—直线对偶性变成了现在的点—正弦曲线对偶性。

●检测在图像空间中共点的线需要在参数空间里检测正弦曲线的交点。

●具体就是让θ取遍θ轴上所有可能的值,并算出对应的ρ,再对累加数组A累加,有A的数值得到共线点的个数,这里在参数空间建立累加数组的方法与上述类似。

可怜累啊累~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/78370
推荐阅读
相关标签
  

闽ICP备14008679号