问题标签 [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.
opencv - 带像素化线的 Houghlines2
我试图用 houghlines2 检测一条线,但我的线是像素化的,因此 houghlines2 无法将其识别为一条线。发生的情况是我检测到部分线条,但没有检测到整条线条 - 如图所示,红线越来越多地填充线条
我试图模糊这条线,但到目前为止还没有运气。
代码: http: //pastebin.com/zmsCFucM
有谁知道如何解决这个问题?我和 canny 一起工作过也没有运气。
编辑
当我在油漆中测量线条时,假设它是 30。(我通过 sqrt(lengthx^2 + longy^2) 做到这一点)。然后 houghlines2 概率中的 minLength 必须更短。我认为这是我的问题,我不知道为什么它必须更短。有任何想法吗?
c# - opencv houghlines2 线长是缩短的方式
我有一条角度为 205 度、长度为 77 像素的线。(用 sqrt(x^2+y^2) 找到)有点像这样。这张图片上的测量值不正确,它只是为了向您展示我的意思。
我正在执行 houghlines2 像这样:
我添加了一个 for 循环来确保我检测到了这条线。当 lineLength 为 44 时,我终于找到了使用 houghlines2 方法的线 - 见下图。
为什么我必须一直降到44?我需要能够以“几乎”正确的长度找到它,+- 10 可以,但 -33 太多了。
我需要关于如何执行 houghtransform 的答案,而不是很多指向不同读数的链接。我一直在阅读很多页面,但我无法理解它。
matlab - MATLAB中的霍夫变换不使用霍夫函数
我在Rosetta Code的 MATLAB 中找到了 Hough 变换的实现,但我无法理解它。另外我想修改它以显示原始图像和重建的线(去霍夫)。
感谢您对理解它和去霍夫的任何帮助。谢谢
为什么图像会翻转?
theImage = flipud(theImage);
我无法理解规范函数。它的目的是什么,可以避免吗?
编辑:规范只是欧几里得距离的同义词:sqrt(width^2 + height^2)
rhoLimit = norm([width height]);
有人可以解释如何/为什么计算 rho、theta 和 houghSpace 吗?
/li>我将如何去除霍夫空间以重新创建线条?
使用使用身份(眼睛)函数创建的对角线的 10x10 图像调用函数
实际功能
matlab - 线的霍夫变换
我试图让霍夫变换在 MATLAB 中工作,但我遇到了问题。我有一种非常糟糕的方法来检测需要修复的峰值,但在此之前我需要能够反转霍夫变换以再次正确创建线条。这是我现在得到的东西类型:
看起来它旋转了 90 度,但我不知道为什么。我不确定是我的霍夫空间错了,还是我的方式是 dehough 和画线。还有人可以帮助改善我的峰值检测吗?
代码中使用的图像在这里
谢谢
交叉发布: https ://dsp.stackexchange.com/questions/1958/help-understanding-hough-transform
matlab - 广义霍夫 R 表
我正在尝试在 MATLAB中实现本文中介绍的广义霍夫变换。我也尝试使用这个文档来理解算法。我一直在弄清楚如何计算梯度角以找到要在 R 表中使用的 Φ。
我试图运行这个matlab 实现,但轮廓函数试图访问负索引。缺少的功能如下。
距离.m
重心.m
模型霍夫.m
matlab - 找到形状中一点的梯度方向
我正在尝试在 matlab 中实现广义霍夫变换。该算法需要形状中每个点的梯度方向。如何测量 phi,如下图所示?
computer-vision - 用霍夫变换检测三次曲线
我有一张带有曲线的图片,可以通过以下等式定义:
很明显如何使用正常的霍夫变换来检测曲线。但是,我想通过使用梯度方向来减少参数空间(我已经从边缘检测中得到了它)。我不确定如何使用梯度方向来减少参数空间。
我的一个想法是找到导数 dy/dx = 3ax^2 + 2bx + c 。现在我只有三个参数,因此我的任务更容易。这是正确的吗?如果我使用它,我如何获得 d 参数?
matlab - 在霍夫变换后检测相交线
在 Matlab 中使用霍夫变换,检测到一些线条。使用这些线的端点我已经绘制了它们。当我拥有所有变量时,我无法理解如何找到相交线。
由于参数方程如下
我不确定如何解决这个问题。有了所有这些信息,必须有一种快速的方法来查找线是否相交,如果相交,点也一样。
非常感谢任何指导。
c - OpenCV:cvHoughCircles 使用错误
我正在使用 cvHoughCircles 在下图中找到两个白色椭圆:
我首先使用阈值来定位白色区域,然后使用霍夫变换。但是输出不正确,如下所示:
我无法理解发生了什么?为什么它检测到 3 个圆圈,为什么只有一个被正确检测到?有什么建议么?
下面是我的代码:
编辑:
由于我对霍夫变换没有得到满意的结果,我愿意采取其他方式。我可以假设图中每个白色斑点的大小相同(大小已知),并且斑点之间的距离也是已知的。有没有一种不平凡的方法可以找到一条垂直线(切线)接触左侧白色斑点的左侧?一旦我知道了这个切线,我就知道了边界位置,然后我将在 x=(这个位置 + 半径(已知))处画一个圆,y = 这个位置。我可以使用一些重要的方法找到这样的 x 和 y 坐标吗?
解决了,通过如下改变:
这是输出:
python - Python OpenCv 给出错误 'cv2.cv.cvseq' 对象没有属性 'total'
我在网上寻找一些 Python 中的图像边缘检测代码,发现了一些我想看的有趣的东西。不幸的是,我不断收到此错误:'cv2.cv.cvseq' 对象没有属性'total'
出错的代码行是
整个代码可以选择在 Hough Standard 和 Hough Probabilistic 之间切换,当我将其设置为使用概率方法(因此不需要“lines.total”代码段)它运行良好,所以我相当确定我有我需要安装和导入的所有东西。