前言
在学习过程中,我发现许多文章一上来就介绍Hough变换的特点和数学原理,却忽视了Hough变换的使用场景(在边缘检测之后使用),因此很容易让人捉摸不透。在本文中,大家可以关注一下这一点。
一、Hough变换使用场景
我们先通过边缘检测,得到了幅值超过某个阈值的像素集合,即边缘像素。我们想知道,这些边缘像素是否连成直线,即验证这些边缘像素是否在某直线上。为此,我们可以采用Hough变换。
二、Hough变换用于直线边缘检测
我们猜测:边缘像素点A:和B:在一条直线上:。我们希望通过Hough变换,验证我们的猜测。
注意,我们往往不知道直线的具体参数,即我们只能先假设存在边缘直线,然后再找出斜率和纵坐标的具体值。
一句话:我们现在只有边缘像素点集合,任务是:一,验证是否在直线上;二,找出k和q的具体值。
继续。我们把点A和点B代入方程中,经过变形,我们可以得到两条直线方程:
如上方右图所示。注意,此时k和q是变量,因此两条直线位于参数空间中。
如果A和B确实是上的两个点,那么这两条直线方程就一定会经过点!并且,这个交点是唯一的!因为,A和B只能唯一确定一条直线!
总结、拓展:
1、我们把每一个样本坐标,代入我们猜测的直线方程中,都能得到一条直线。
2、这一条直线上包括无穷多个离散的坐标对。
3、因此,由边缘像素点集,可以计算得到多条直线,每一条直线都有对应的坐标集合。