基元检测-霍夫直线变换原理

在之前已经使用过正规方程法、梯度下降法拟合直线

1、回顾过去

梯度下降法拟合一元函数

最小二乘法的线性代数推导

现在使用一种新的直线检测方法,霍夫变换,它也可以拟合直线,接下里将说明他的原理。

2、霍夫变换

霍夫变换(Hough Transform)是一种在图像处理和计算机视觉中广泛使用的技术,主要用于检测图像中的几何形状,如直线、圆等。该技术由Paul Hough于1962年首次提出,其基本思想是将图像空间中的点变换到参数空间中,通过寻找参数空间中的峰值来检测图像中的特定形状。

霍夫变换一般是用来检测图像中的直线的,而图像是由一个个像素点组成的,这个过程相当于拟合一条直线了。

2.1直线拟合任务介绍

假设我们有这样一个分布的数据:

我们想用一条直线拟合数据,它的表达式为Y=kX+B

关于最小二乘和梯度下降还不知道的可以去看以往的文章,这里就直接介绍霍夫变换了。

2.2霍夫变换参数平面

原来不是Y=kX+B吗,霍夫变换将其形式改变,转换为B=Xk+Y

思想:将数据的X作为斜率,Y作为截距,如果有N个点,在k,B这个坐标系下就会有N条直线,这些直线会有交点,选择经过直线最多的交点,比如上图中标记的交点,经过的直线最多,有4条。

将这个交点(k,B)选出,形成新的Y=kX+B

因为在原来的B=Xk+Y中大部分点都过这条直线,所以转换过来后也满足绝大多数点都经过Y=kX+B。

2.3 极坐标下的霍夫变换

2.3.1使用直角坐标系存在的问题

看下图的情况:

如上图所示,如果出现直线的斜率接近于无穷,就接近于一条竖线,图左中过原点的B=0,K就是接近无穷,图右则B和k都解靖宇无穷了。在参数平面里面,这个无穷就是个很大的数,计算机基本上无法表示,如果是一条标准的直线,那么参数K就是不存在,更谈不上什么参数平面了。

2.3.2解决方法-极坐标系表示

比如这种接近竖直线的利用极坐标系(r,θ)是可以表示的,r是原点到直线的垂直距离,θ指这原点到垂点连接形成的直线与x轴形成的夹角。

对于那些斜率不存在的:

θ=0直接就可以表示了

对于水平直线,θ=π/2即可表示。

2.3.3 极坐标系下的参数平面

将y=kx+b,转换为xcosθ+ysinθ=r的极坐标表示方式

将没个点的x,y带入,N个点就有个N条曲线,为什么是曲线呢?

假如点(1,1)点,带入极坐标表达式,r=cosθ+sinθ,表达式有cos和sin,肯定是条曲线了。

不妨多带几个例子进去,(1,3),(100,1)等,它们带进去后都会生成一条关于f(r,θ)的曲线

这个时候,我们和极坐标系下一样,将曲线中的交点进行排序,经过直线最多的那个点r,θ即为我们所需要的。原理和直角坐标系一样。

注:后期时间充裕的话可能要加上MATLAB仿真。

  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赵药师

嘿嘿嘿

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值