问题标签 [houghlines]
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 Hough Lines 实现,提高时间效率
所以我试图在python中实现霍夫变换线算法,我发现很难让它变得高效。
这是我的实现:
它可以工作,但速度很慢,比 opencv 实现慢 100 倍。
我该如何改进它?
c++ - c++,opecv:HoughLines() 不接收轨迹栏传递的值
我应该使用 HoughLines 函数检测道路的两条白线。我使用三个轨迹条来找到仅检测道路的两条白线的最佳参数。我试过这个:(问题是即使我更改了轨迹栏的值,它也不会更新图像,它仍然是第一个值)。我正在使用带有 C++ 的 opencv。
没有轨迹栏它可以工作,但没有它几乎不可能找到好的值,因为我不知道如何调整参数并且图像非常复杂。
HoughLines() 看起来没有回答使用轨迹栏设置的值。窗口正常显示,slider_value_one、slider_value_two、slider_value_three 具有正确的值,因为我打印并看到了它们,所以我不明白为什么 HoughLines() 不采用传递的值。
python - Python OpenCV:霍夫变换没有检测到明显的线条
问题: 我想在 Python 中使用 OpenCV 检测给定图像中的线条。尽管有多条明显的垂直线,但无论是普通 HoughLines 还是概率 HoughLines 都找不到它们。由于我花了很多时间玩参数,我想我在这里做一些根本性的错误。我知道这样一个事实,即 hough-lines 通常应用于边缘,例如在使用 canny 之后。由于 canny 的非最大抑制,canny 在这里没有给出好的结果。
图像,检测垂直线失败:
为什么: 鉴于此(水表的图像):
我想检测每个数字周围的矩形。为了检测矩形,我在 x 和 y 方向上使用了 sobel 滤波器,并计算了梯度的幅度和角度/相位。由于我假设图像在此步骤中正确旋转,因此我提取了垂直和水平边缘,如图所示。我希望利用 houghLines 找到边界框。找到水平线效果很好,如图所示
包含对问题的进一步见解的调试图,因为我不处理垂直组件(第二行):
检测每个数字周围的矩形将帮助我
- 定位感兴趣的区域
- 切出矩形内的区域,也就是数字。其他几种使用轮廓直接检测数字的方法都存在外部矩形干扰数字的问题。
更新:检测垂直线的代码:
java - 安卓 Java OpenCV。检测和绘制霍夫线的问题
我尝试在安卓手机上使用 OpenCV 来检测线路。我只是初学者,我不完全理解这段代码,因为我是从互联网上改编的。最后我只看到一行,而不是全部。有人能帮我吗?
python - 如何防止 HoughLines 多次检测某些行
因此,我正在编写这段代码以从图像中的某些图形中提取数据。这些图像都是从一本书中扫描出来的。由于我们在这里讨论的是 100 多张图像,因此我当然想自动化该过程。我的第一步是确保所有图像都对齐。因为这本书的页面是手工扫描的,所以扫描件彼此之间都有轻微的偏移或旋转。幸运的是,图像上有一些虚线,可以用作对齐它们的参考点。之后,我可以通过在这些虚线上对图像进行切片,将图像分成更小的子图像。这样,所有扫描图像的所有子图像都是相同的。
所以,第一步当然是检测这些虚线。我的策略可以用 4 个步骤来描述:
- 使用形态变换将虚线变为实线
- 使用 Canny Edge Detection 检测所有边缘
- 使用 HoughLines 识别线条
- 在蒙版上绘制这些线以供进一步使用
现在可能会出现几个问题。有时 HoughLines 会检测到错误的线条(例如书中下一页的折叠),但这可以通过在右侧稍微裁剪图像来解决(总是欢迎更好的解决方案)。第二个(也是最大的)问题是 HoughLines 有时倾向于将单行识别为多行。我认为这与 Canny Edge Detection 对边缘过于粗糙或模糊有关,因此 HoughLines 实际上会看到多条线。有没有一种方法可以“平滑” Canny 的输出,以便 HoughLines 准确检测每条线一次?
在这个特定图像的情况下,中间的垂直虚线没有被识别,而书中下一页的折叠却被识别。此外,垂直虚线被识别为多条线。(左源图像,检测到中间边缘,检测到右线)
python - Hough Line 仅使用 OpenCV 和 Numpy 在 python 中写入 1 行
我正在学习将 HoughLines() 与 Python、OpenCV 和 numpy 一起使用。我使用下面的图片:
我正在尝试检测所有线条,而不仅仅是最粗的线条。结果如下:
这是我的代码:
我在这里使用教程/代码: https ://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_houghlines/py_houghlines.html
这看起来很简单,但在本教程中,使用的图像是报纸上的数独,并且在我得到单行的地方返回了许多行。正如您在代码中看到的,我已输出edges
到单独的图像以查看那里发生了什么,结果如下:
似乎找到了许多边缘,但我只得到一条红线,而不是很多。我的代码在哪里不正确?