0

我试图用 houghlines2 检测一条线,但我的线是像素化的,因此 houghlines2 无法将其识别为一条线。发生的情况是我检测到部分线条,但没有检测到整条线条 - 如图所示,红线越来越多地填充线条

在此处输入图像描述

我试图模糊这条线,但到目前为止还没有运气。

代码: http: //pastebin.com/zmsCFucM

有谁知道如何解决这个问题?我和 canny 一起工作过也没有运气。

编辑

当我在油漆中测量线条时,假设它是 30。(我通过 sqrt(lengthx^2 + longy^2) 做到这一点)。然后 houghlines2 概率中的 minLength 必须更短。我认为这是我的问题,我不知道为什么它必须更短。有任何想法吗?

4

2 回答 2

0

您可以尝试缩小图像...多亏了这一点,您的线条将是一个像素宽度!理论上我们可以找到一组霍夫变换参数来检测你的线条。

您可以尝试在您的代码中将 CV_HOUGH_PROBABILISTIC 替换为 CV_HOUGH_MULTI_SCALE,这将尝试查找不同比例的行。

于 2012-03-09T12:21:35.003 回答
0

以下答案基于我从您的问题中收集到的内容。

所以它检测的是两条线而不是一条线,对吧?在检测到的两个(使用概率标志)中,比较四组线端点(每条线将有两个)。将有两个点之间的距离最小。合并这两个得到三分。现在的方法是考虑其他两点并画一条线。

或者在从霍夫线检测中获得的四个端点上使用线拟合函数(OpenCV 有一个)。cvFitLine() 返回线的矢量表示 - 没有端点。因此,在彼此相距最远的霍夫线端点的坐标处剪辑该拟合线。

于 2012-03-09T17:04:49.777 回答