从霍夫变换中提取线段

image-processing computer-vision

5590 观看

5回复

3866 作者的声誉

在执行Hough变换后,如何检测线段而不是图像中的线?保存每个累加器箱的最小和最大坐标是否有意义还是有更好的方法吗?

我没有使用OpenCV,顺便说一句。

作者: mdm 的来源 发布者: 2011 年 7 月 17 日

回应 (5)


2

6342 作者的声誉

决定

即使您不使用OpencV您也可以查看HoughLinesP函数的代码,返回行段。

是的,保存累加器箱的极限坐标是有道理的。

[编辑2011-07-19]如果您有多个线段与上面的belisarius示例位于同一条线上那么您将不得不做更多的工作,只记住极端坐标是不够的。所以这取决于你的确切应用。

作者: jilles de wit 发布者: 17.07.2011 09:38

1

807 作者的声誉

Matlab具有houghlines功能,可以完全满足您的需求。它基于霍夫变换提取线段。

http://www.mathworks.com/help/toolbox/images/ref/houghlines.html

如果两个单独的线段位于同一条线上,则保存霍夫箱的极坐标将不起作用。

作者: ton4eg 发布者: 17.07.2011 09:55

4

55966 作者的声誉

我认为这张图片显示了线条和线段的霍夫变换将帮助您捕捉到正在发生的事情:

在此输入图像描述

作者: Dr. belisarius 发布者: 17.07.2011 10:19

4

2342 作者的声誉

基本上,你必须准确跟踪哪些点对每个Hough bin投票。你可以在填充垃圾箱之后(如在Matlab版本中)或在填充垃圾箱时(更高效,但也可能对嵌入式平台不利的内存密集)。从那里,您可以跟随线上的像素来提取实际线段,当相邻像素之间的间隙太大时创建新线段。

有关如何提取对特定Hough bin贡献的像素的更多信息,请参阅Matlab算法的部分描述,包括实际实现(链接到hough_bin_pixels.m)。

作者: Sean 发布者: 18.07.2011 05:58

0

1 作者的声誉

我想完全相反,我想提取整行,而不是线段。如您所见,下面的houghlines创建了多个线段,如何提取长线?

红色是线条,绿色是起点,黄色是终点

图片

作者: Stayros Paspalakis 发布者: 20.07.2019 07:56
32x32