霍夫变换线位置(OpenCV)

时间:2014-12-29 06:18:52

标签: opencv image-processing hough-transform

在OpenCV中实现的Hough line transform女巫可以找到近似的行位置(参见下图中的短行)。

Found lines using OpenCV

然而,可以在Hough transform explanationOpenCV's explanation of function中看到它,它只是找到 r theta ,它们不能解释短线位置。

Hough转换是否找到了除 r theta 之外的任何内容,这有助于查找短线位置?怎么样?

1 个答案:

答案 0 :(得分:1)

Hough变换和概率Hough变换排序使用相同的技术来检测线,即计算 r theta 值。差异来自算法使用的边缘点集。概率方法从所有边缘点的集合中随机采样并使用它们来检测线条,其中标准技术使用图像中的所有边缘点。

现在回答你的问题。在概率技术中,我们从随机选择的边缘点集中取任意两个点(x1,y1)和(x2,y2),并使用这些方程计算(a,b)。

y1 = x1(a)+ b

y2 = x2(a)+ b

(a,b)对基本上表示连接点(x1,y1)(x2,y2)的线。在代码中,我们维护一个链表,该链表存储这些(a,b)对以及与该对相关联的计数值。我们计算所选边缘点的所有可能对的(a,b)值。因为在计算(a,b)时,我们知道使用了哪些边缘点,我们可以存储这些信息,这些信息稍后会准确地告诉我们每条线的贡献点。使用此信息,我们可以计算图像中每一行的终点。

参考:http://homepages.inf.ed.ac.uk/rbf/CVonline/LOCAL_COPIES/AV1011/macdonald.pdf