问题标签 [hough-transform]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1714 浏览

opencv - 带像素化线的 Houghlines2

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

在此处输入图像描述

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

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

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

编辑

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

0 投票
1 回答
1111 浏览

c# - opencv houghlines2 线长是缩短的方式

我有一条角度为 205 度、长度为 77 像素的线。(用 sqrt(x^2+y^2) 找到)有点像这样。这张图片上的测量值不正确,它只是为了向您展示我的意思。 在此处输入图像描述

我正在执行 houghlines2 像这样:

我添加了一个 for 循环来确保我检测到了这条线。当 lineLength 为 44 时,我终于找到了使用 houghlines2 方法的线 - 见下图。

在此处输入图像描述

为什么我必须一直降到44?我需要能够以“几乎”正确的长度找到它,+- 10 可以,但 -33 太多了。

我需要关于如何执行 houghtransform 的答案,而不是很多指向不同读数的链接。我一直在阅读很多页面,但我无法理解它。

0 投票
1 回答
23568 浏览

matlab - MATLAB中的霍夫变换不使用霍夫函数

我在Rosetta Code的 MATLAB 中找到了 Hough 变换的实现,但我无法理解它。另外我想修改它以显示原始图像和重建的线(去霍夫)。

感谢您对理解它和去霍夫的任何帮助。谢谢

  1. 为什么图像会翻转?

    theImage = flipud(theImage);

  2. 我无法理解规范函数。它的目的是什么,可以避免吗?

编辑:规范只是欧几里得距离的同义词:sqrt(width^2 + height^2)

rhoLimit = norm([width height]);

  1. 有人可以解释如何/为什么计算 rho、theta 和 houghSpace 吗?

    /li>
  2. 我将如何去除霍夫空间以重新创建线条?

使用使用身份(眼睛)函数创建的对角线的 10x10 图像调用函数

实际功能

0 投票
1 回答
6884 浏览

matlab - 线的霍夫变换

我试图让霍夫变换在 MATLAB 中工作,但我遇到了问题。我有一种非常糟糕的方法来检测需要修复的峰值,但在此之前我需要能够反转霍夫变换以再次正确创建线条。这是我现在得到的东西类型:

在此处输入图像描述

看起来它旋转了 90 度,但我不知道为什么。我不确定是我的霍夫空间错了,还是我的方式是 dehough 和画线。还有人可以帮助改善我的峰值检测吗?

代码中使用的图像在这里

谢谢

交叉发布: https ://dsp.stackexchange.com/questions/1958/help-understanding-hough-transform

0 投票
2 回答
3681 浏览

matlab - 广义霍夫 R 表

我正在尝试在 MATLAB中实现本文中介绍的广义霍夫变换。我也尝试使用这个文档来理解算法。我一直在弄清楚如何计算梯度角以找到要在 R 表中使用的 Φ。

我试图运行这个matlab 实现,但轮廓函数试图访问负索引。缺少的功能如下。

距离.m

重心.m

模型霍夫.m

0 投票
1 回答
862 浏览

matlab - 找到形状中一点的梯度方向

我正在尝试在 matlab 中实现广义霍夫变换。该算法需要形状中每个点的梯度方向。如何测量 phi,如下图所示?

在此处输入图像描述

0 投票
1 回答
772 浏览

computer-vision - 用霍夫变换检测三次曲线

我有一张带有曲线的图片,可以通过以下等式定义:

很明显如何使用正常的霍夫变换来检测曲线。但是,我想通过使用梯度方向来减少参数空间(我已经从边缘检测中得到了它)。我不确定如何使用梯度方向来减少参数空间。

我的一个想法是找到导数 dy/dx = 3ax^2 + 2bx + c 。现在我只有三个参数,因此我的任务更容易。这是正确的吗?如果我使用它,我如何获得 d 参数?

0 投票
2 回答
5306 浏览

matlab - 在霍夫变换后检测相交线

在 Matlab 中使用霍夫变换,检测到一些线条。使用这些线的端点我已经绘制了它们。当我拥有所有变量时,我无法理解如何找到相交线。

由于参数方程如下

我不确定如何解决这个问题。有了所有这些信息,必须有一种快速的方法来查找线是否相交,如果相交,点也一样。

非常感谢任何指导。

线条

0 投票
2 回答
4550 浏览

c - OpenCV:cvHoughCircles 使用错误

我正在使用 cvHoughCircles 在下图中找到两个白色椭圆:

在此处输入图像描述

我首先使用阈值来定位白色区域,然后使用霍夫变换。但是输出不正确,如下所示:

在此处输入图像描述

我无法理解发生了什么?为什么它检测到 3 个圆圈,为什么只有一个被正确检测到?有什么建议么?

下面是我的代码:

编辑:

由于我对霍夫变换没有得到满意的结果,我愿意采取其他方式。我可以假设图中每个白色斑点的大小相同(大小已知),并且斑点之间的距离也是已知的。有没有一种不平凡的方法可以找到一条垂直线(切线)接触左侧白色斑点的左侧?一旦我知道了这个切线,我就知道了边界位置,然后我将在 x=(这个位置 + 半径(已知))处画一个圆,y = 这个位置。我可以使用一些重要的方法找到这样的 x 和 y 坐标吗?

解决了,通过如下改变:

这是输出:

在此处输入图像描述

0 投票
2 回答
2244 浏览

python - Python OpenCv 给出错误 'cv2.cv.cvseq' 对象没有属性 'total'

我在网上寻找一些 Python 中的图像边缘检测代码,发现了一些我想看的有趣的东西。不幸的是,我不断收到此错误:'cv2.cv.cvseq' 对象没有属性'total'

出错的代码行是

整个代码可以选择在 Hough Standard 和 Hough Probabilistic 之间切换,当我将其设置为使用概率方法(因此不需要“lines.total”代码段)它运行良好,所以我相当确定我有我需要安装和导入的所有东西。