「图像处理」霍夫变换

霍夫变换(Hough Transform)

最近在学习图像分割的相关知识,提及到霍夫变换,参考教材《数字图像处理(第三版)》决定总结一下这个有用的方法

方法介绍

看图,霍夫变换回答了这样一个问题:哪一些点的集合可以被判断为组成了一条直线?
在这里插入图片描述
霍夫变换需要将xy坐标转换为ab坐标,为什么需要这样的转换呢?回答是这样的,因为在xy坐标上需要表示一条线时,需要两个参数(a和b)y=ax+b表示成功,但是在ab坐标中,表示一条线时,只需要一个点,a和b两个参数组成的点,就可以表示一条直线了

有了这样的操作之后能干什么呢?举一个例子,有一个点,我并不清楚它在图像中的哪一条直线上,这时候我只需要将这个点带入不同的线段中(其实就是不断改变a的值),计算出与之对应的b,这样就会以不同的a为投票条件,将未知的点进行投票,从投票结果来看,在一个范围内出现最多的点,很大程度上就属于同一条线了,分类的精度取决于投票器(1、2、3、4)的区域大小,这就是霍夫变换的基本操作。

还有一个小问题需要回答,为什么最后又要进行一次坐标变换呢?将ab坐标变换为三角函数坐标?是因为在空间图像中可能会有垂直的线段,意味着线段斜率可能无穷大,于是就不可能在ab坐标上表示出来,解决方法就是用这条直线的法线来表示这条直线,为了方便理解,可以借助圆来帮助大家理解,这条线相当于圆上某一点的切线,切线固定,则垂线固定

效果演示

投票结果
代码是网上找的,目的是为了说明霍夫变换
霍夫变换不仅可以处理直线,也可以处理其他模型,只要知道了模型的数学公式,例如圆,就可以进行图片中的模型检测,不过模型中参数越多,设计出来的投票器(计算点在某一特定参数出现的次数)维度就越高。

这种变换在检测特定模型时,例如圆、直线、矩形抗噪能力优秀。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值