霍夫变换的一些理解

霍夫变换其实就是坐标变换,将实际图像的xy投影到参数空间,有多少个参数就投影到多少维空间,然后利用投票算法来决定所需的参数。

最简单的霍夫变换就是直线检测,y=kx+b。这里参数就是k,b,所以它是一个二维参数空间,我们可以建立一个“投票器”,其实就是一个二维数组。

b=y-kx 这么写比较容易分辨参数空间,但是当直线竖直时我们就求解不到k,b参数所以我们利用极坐标公式r=x*sin(a)+y*cos(a)  a--<-pi~pi> 

这样我们得到r和a两个参数,同样的还是投票二维参数空间。

第一步就是寻找边缘,可以用sobel也可以用canny。

第二步将边缘的点xy分别带入极坐标公式,带入不同的a分别求出r,对不同的a和r,在投票器中进行投票,比如在(0,0)点 a为pi/20时 r为30 就将投票器中表示 (pi/20,30)的点加1,这样当有一个点超过设定阈值票数时,我们就可以认定其为直线。

第三步就可以将参数带回笛卡尔坐标空间,图像中标明即可。


当然找圆也一样。


而广义霍夫变换就将这个参数空间扩展到椭圆甚至所有有方程的轮廓中,不管多少维参数都能将其找出,不过是时间比较浪费,其实霍夫变换的寻找方法类似于蛮力寻找,只不过利用数学方法提取而已,时间耗费相当可观。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值