如何使用Opencv2.4.9的HoughLinesP函数进行图像边缘检测?
- 内容介绍
- 文章标签
- 相关推荐
本文共计2850个文字,预计阅读时间需要12分钟。
标准投影变换本质上是将图像映射到其参数空间上,它需要计算所有M个边缘点的位置。这样,它的运算量和所需内存都会很大。如果输入图像中只处理m(m 标准霍夫变换本质上是把图像映射到它的参数空间上,它需要计算所有的M个边缘点,这样它的运算量和所需内存空间都会很大。如果在输入图像中只是处理m(m<M)个边缘点,则这m个边缘点的选取是具有一定概率性的,因此该方法被称为概率霍夫变换(Probabilistic Hough Transform)。该方法还有一个重要的特点就是能够检测出线端,即能够检测出图像中直线的两个端点,确切地定位图像中的直线。 HoughLinesP函数就是利用概率霍夫变换来检测直线的。它的一般步骤为: 1、随机抽取图像中的一个特征点,即边缘点,如果该点已经被标定为是某一条直线上的点,则继续在剩下的边缘点中随机抽取一个边缘点,直到所有边缘点都抽取完了为止; 2、对该点进行霍夫变换,并进行累加和计算; 3、选取在霍夫空间内值最大的点,如果该点大于阈值的,则进行步骤4,否则回到步骤1; 4、根据霍夫变换得到的最大值,从该点出发,沿着直线的方向位移,从而找到直线的两个端点; 5、计算直线的长度,如果大于某个阈值,则被认为是好的直线输出,回到步骤1。
本文共计2850个文字,预计阅读时间需要12分钟。
标准投影变换本质上是将图像映射到其参数空间上,它需要计算所有M个边缘点的位置。这样,它的运算量和所需内存都会很大。如果输入图像中只处理m(m 标准霍夫变换本质上是把图像映射到它的参数空间上,它需要计算所有的M个边缘点,这样它的运算量和所需内存空间都会很大。如果在输入图像中只是处理m(m<M)个边缘点,则这m个边缘点的选取是具有一定概率性的,因此该方法被称为概率霍夫变换(Probabilistic Hough Transform)。该方法还有一个重要的特点就是能够检测出线端,即能够检测出图像中直线的两个端点,确切地定位图像中的直线。 HoughLinesP函数就是利用概率霍夫变换来检测直线的。它的一般步骤为: 1、随机抽取图像中的一个特征点,即边缘点,如果该点已经被标定为是某一条直线上的点,则继续在剩下的边缘点中随机抽取一个边缘点,直到所有边缘点都抽取完了为止; 2、对该点进行霍夫变换,并进行累加和计算; 3、选取在霍夫空间内值最大的点,如果该点大于阈值的,则进行步骤4,否则回到步骤1; 4、根据霍夫变换得到的最大值,从该点出发,沿着直线的方向位移,从而找到直线的两个端点; 5、计算直线的长度,如果大于某个阈值,则被认为是好的直线输出,回到步骤1。

