问题标签 [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.
python - Python Opencv Hough Circles,存储访问中的致命错误
我正在尝试使用带有opencv的霍夫变换来检测圆圈。
当场景中没有圆圈时,我得到一个空指针错误。我可以处理我认为的例外情况。
但是,当有一个圆圈时,试图操纵存储对象会给我错误。
例如,我尝试将其转换为 numpy 数组,但大多数但并非所有时间都会出现以下致命错误。
有时帧确实显示正确。
我的代码
python - 使用python,numpy进行圆形检测?
我想使用 python 实现霍夫变换算法,
numpy
并且scipy
.我不想使用
opencv
.我正在尝试检测没有已知半径的图像中的圆心或圆心。
我该如何进行?
opencv - 如何从轮廓中取回图像?
我正在做一个项目,我将图像缩小到一个物体的轮廓(实际上是眼睛的瞳孔)。现在我想对包含瞳孔轮廓的图像应用霍夫变换。但是没有任何反应。我的猜测是您只能对灰度图像应用霍夫变换,
所以我想知道如何取回我已经检测到的瞳孔轮廓的灰度部分,以便我可以对其应用霍夫变换。
image-processing - 查找图像每条线的斜率(角度)
我必须计算图像每条可检测线的斜率(或角度)。如果可能的话,甚至可以检测线斜率的变化。我已经执行了 2D Fourier,并且我知道每个区域(64x64px 的集合)的邻域平均角度。我什至尝试了霍夫变换,但 sobel 和 prewitt 边缘检测似乎都不能正确检测到这些线。
请注意,有些线是相互交叉的,有些不是笔直的。
有没有一种方法可以检测每条线的斜率?或者检测这些线以执行有用的霍夫变换?
如果您需要完整的图像,我可以将其上传到某个地方。
opencv - 在opencv for iris中使用霍夫圆函数查找小圆
我需要使用 opencv2 中可用的 HoughCircle 函数检测我拥有的眼睛图片的虹膜。所以 ,
所以这是我的代码,只检测到眼睛的外部部分,因为我希望检测到瞳孔和虹膜边界而这没有发生,我参考了链接OpenCV:使用霍夫圆变换检测虹膜 ,但它没有不能那样工作。代替精明的边缘检测器已经使用了sobel。请提出建议。
opencv - EMGU CV 中的标准霍夫线
我需要使用标准霍夫变换(而不是使用实现概率霍夫变换的 HoughLinesBinary 方法)并尝试通过创建 HoughLinesBinary 方法的自定义版本来做到这一点:
我的问题是我不确定返回的序列是什么类型。我相信它应该是 MCvMat,因为阅读了 CvMat* 在 OpenCV 中使用的文档,其中还指出对于标准“矩阵必须是(创建的序列将是)CV_32FC2 类型”
我不清楚我需要做什么来返回和处理来自标准霍夫线的正确输出数据(即每条线的 2x1 向量给出 rho 和 theta 信息)。
任何帮助将不胜感激。谢谢
-萨尔
python - 霍夫过滤后没有结果
在程序中,我使用了一个像这样的精明过滤器:
然后终端打印no
,表示没有返回结果,cannyresult
是一张有很多圆圈的图片。有人可以帮我吗?
matlab - 在matlab中使用霍夫变换/霍夫线检测特定线
我目前正在做一个 matlab 项目,我必须从图像中分离出条形码并读取条形码信息。我使用的方法是霍夫变换,一旦变换完成,我就可以使用houghpeaks
,houghlines
这样我就可以确定条形码上每条线之间的距离。我的图像可能是水平的或垂直的。
我遇到的问题是houghpeak
检测和houghline
绘图。当我的图像有垂直线时,它不会检测到条形码的每一行。我在条形码图像下方有一个链接,我在上面绘制线条,我希望在我指定的长度上的每条垂直线(在此图像的情况下为 65)都有一条线叠加在其上,以便我可以使用它信息并测量每条线之间的距离
我选择 65 作为我的“MinLength”的原因是因为如果我没有指定这个高值,我会在图像的其他部分绘制水平线。
我试图实现 sobel 边缘检测,以便我可以指定水平/垂直方向,但使用它会出错:('引用不存在的字段'point1')。
我对参数也不太清楚'FillGap'
,我已经阅读了关于它的 matlab 帮助,但我仍然没有理解它。我玩过不同的价值观来尝试理解它,但我不太清楚。
我还尝试使用不仅仅是条形码的图像来实现代码。
在这张图片中,它也只拾取似乎是随机的霍夫峰,因此没有绘制我想要的霍夫线。
所以我的问题是真的有人能告诉我为什么代码没有在图像中条形码的每条“线”上绘制所有的霍夫线。
下面是代码。
提前致谢!
matlab - 了解线的霍夫变换
我试图确切地了解它是如何工作的。我相信我理解这个概念:
对于所有边缘像素,找到所有穿过它的线,并且对于这些线中的每一条,将累加器数组值(对应于斜率和 y 截距)加 1。穿过许多边缘点的线将有很多票累加器数组。
我不明白的是我为实现它找到的代码。首先,我相信我们可以假设,在应用边缘检测器之后,边缘像素具有非零值,而非边缘为 0。在我教科书的代码中,程序搜索具有零值的所有点,并且,对于所有通过的线,将相应的累加器值增加 1。我认为它会寻找通过边缘点(非零)的线,而不是空白空间?有人可以向我解释这部分吗?
以下是我在一本图像处理教科书中找到的 Matlab 代码。我没有测试它,因为我正在使用 C++。%messages 是我对特定行的作用的理解:
opencv - 在机器人导航中使用霍夫变换
我的目标是让自主机器人使用摄像头在有围墙的迷宫中导航。摄像头固定在机器人顶部并朝下,以便能够从上方查看墙壁和机器人。
根据我的经验,我采取的最直接的方法是
- 阈值图像以提取红墙
- 执行 Canny 边缘检测
- 使用霍夫变换从边缘检测强线
如下所示,经过一些参数调整
我想让机器人向前移动并避免“撞到”红墙。问题是从霍夫变换中每个墙边缘检测到多条线。我的一个想法是执行 k-means 聚类以对线条进行聚类并找到每个聚类的中心(均值),但我不知道墙边的数量(因此不知道要输入 k-means 算法的聚类数量) 我将随时在迷宫中导航(前面的墙壁、后面的墙壁、多转弯路口等)。
任何帮助找到一个好的方法来获得一致的墙壁位置来比较机器人的位置(在每个图像帧中总是固定的)在任何时候导航迷宫将不胜感激。我也对解决这个问题的任何其他方法持开放态度。