openCV入门----霍夫变换直线检测(CvHoughLine2的使用)

      上回书说道,霍夫变换检测直线的原理,以及自己编程实现,那么今天我就来使用openCV里的函数来完成这个有意思的任务,看看能收获些什么呢?

      前面我们利用openCV处理过平滑图像(高斯滤波)、边缘检测(canny算法),这些都是直接调用后可以直接得出图像的结果,然后显示出来,然而霍夫变换相对来说复杂一点点,它返回的结果是直线的参数,那么什么是直线的参数呢?

      这个问题我后面再来解释,先看看openCV里处理霍夫变换检测直线的函数有哪些?

      1.  CvHoughLine(...)

      2.  CvHoughLine2(...)

      openCV里有两个函数(比较常用)处理霍夫变换直线检测,有什么区别呢。

      CvHoughLine:是用于标准的霍夫变换方法

      CvHoughLine2:可以使用三种霍夫变换的方法,分别是标准霍夫变换(SHT)、多尺度标准霍夫变换(MSHT)、累计概率霍夫变换(PPHT)。

这些个方法是什么东西呢?暂且我们不管这个问题,但是很直观地告诉我们第二个比第一个要好,方法选择更加多,一看就是前者的升级进化版,所以我确定要学习第二个方法,那么第一个方法也自然水到渠成了。接下来我们再来具体探讨第二个方法的使用。

 

      首先,我们就从上述提到的三种方法开始解释,那三种霍夫变换究竟是什么东东呢?其实到现在我也只是简单地了解一下这玩意可能是什么,却也说不出究竟是个啥,怎么做出来的(这是不是就说明了没有经自己的手编程,那么永远都是门外汉或者说要经过长时间的纠结才能入门这个事实呢,所以有些玩意还是要自己动手才能明白的!),但是目前这个阶段,了解一下也就可以了:

     上述说是三种方法,其实归结到底是两种方法,(1)标准霍夫变换 (2)累计概率霍夫变换

     标准霍夫变换实际上就是我们上回书探讨的坐标变换的那个方法,详细细节请参考上一篇博客;

     P

你可能感兴趣的:(C++,openCV)