在OpenCV中实现的Hough line transform巫婆可以找到大约的行位置(请参见下图中的短行)。
但是,可以在Hough transform explanation和OpenCV's explanation of function中看到它,只是找到 r 和 theta ,无法解释短线位置。
Hough变换除了找到 r 和 theta 以外,还能找到短线位置吗?怎么样?
最佳答案
霍夫变换和概率霍夫变换使用相同的技术来检测图像中的线条。即都计算 r 和 theta 值。两者之间的区别在于每种算法使用的一组边缘点。概率Hough变换从所有边缘点集中随机采样并使用它们检测线,而Hough变换则使用图像中的所有边缘点。
现在,这是我对您问题的回答。在概率霍夫变换中,我们从随机选择的边缘点集中获取任意两个点(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
关于opencv - 霍夫变换线位置(OpenCV),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27684267/