问题标签 [straight-line-detection]

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 投票
1 回答
119 浏览

matlab - 如何使用 MATLAB 在散点图中找到多条水平直线?

在此处输入图像描述 嗨,我有一组点(散点图)。我有兴趣在此数据中找到多条(大约)水平直线(或集群)。例如,在所附图像中,我绘制了直线以显示所需的结果。数据中可能的直线总数事先是未知的。

如果有人能告诉我如何解决这个问题,我将非常感激。提前致谢!

0 投票
1 回答
42 浏览

python - 从二维二进制矩阵中提取直线

我想从二维二进制矩阵中提取直线。

256x128 矩阵

我会找到按邻居坐标分组的 1。
在附图中,有一个 256x128 的二进制矩阵。
可以从给定的示例中提取 4 条直线。
在找到所有分组的 1 之后,我想要一个包含 2 个边缘坐标的向量 [x1,y1,x2,y2]。在给定的示例中,当然应该有 4 个向量。

他们没有机会交叉自己。
矩阵总是包含类似于直线的形状。

语言无关紧要,最好是 Python 代码。
我尝试使用 numpy 和 scipy.spatial.distance 库来创建解决方案但失败了。

我应该使用哪些技术,或者我应该研究哪些库/函数?
提前致谢。

0 投票
1 回答
58 浏览

opencv - 如何使用概率霍夫线变换检测所有垂直背景线?

我正在尝试使用Hough lines transform检测报纸文章的预处理二进制图像的背景线。

我使用的代码如下所示,它只检测一条垂直背景线,但我想检测所有垂直背景线。

如何改进我的代码以仅在预期输出图像中标记时检测所有垂直背景线?

预期的输出是这样的:在此处输入图像描述

但是我从上面的代码得到的输出是这样的: 在此处输入图像描述

输入图像为: 在此处输入图像描述

0 投票
1 回答
92 浏览

python - 线检测问题 - Python 中的 OpenCV

我编写了以下脚本,旨在检测 Gazebo(模拟环境)中的线条:

代码是集成在ROS中的,所以请大家把注意力放在image_callback函数上。我的问题是我想要检测的线路非常嘈杂,我无法弄清楚如何正确检测它。

更具体地说,从以下框架中,

原始框架

在此处输入图像描述

我在高斯模糊和精明算法后得到这张图片,

精巧的框架

在此处输入图像描述

如何过滤我在精明框架中看到的“噪音”?我在 canny 和 gausian 模糊参数上玩了很多,但我所做的只是去除渐变,而不是真正让它变得不那么“嘈杂”。

0 投票
0 回答
184 浏览

python - HoughLinesPointSet() 返回空的 _lines 对象

我目前正在学习 OpenCV 和 AI 对象检测。对于我的小项目,我想用一条线连接 bbox 的中间点以创建一些模式。为此,我尝试使用 HoughLinesPointSet() 函数,但在我的测试代码中,它返回一个空的“行”对象。源代码:

结果:

有人有这方面的经验吗?任何帮助将不胜感激。

0 投票
0 回答
55 浏览

python - 用于直线形点模式识别的霍夫变换算法

大家好,我目前正在研究不同的算法,这些算法可以为我提供对齐单元格组内的直线模式。

让我解释:

假设我们有一个 XY 平面,它是 200(x)/30(y)。

我得到了一堆标记单元格中心的点(在 xy 坐标中),我的任务是获得通过这些单元格形成直线的点的模式。

放置在 xy 平面上的点

模式必须是一组 8 个点:[[point1],[point2],[point3],...[point8]] 或一组 4 个(如果没有可配对的组)。

通过点的可能直线的模式

直线只能有 -50º 到 50º 的梯度。

例如:

命中的 Y 坐标:

命中的 X 坐标:

点将是 [77.7,0.65],[107.1,0.65]...等

所以我的第一个想法是实现某种霍夫变换,它会给我一个累加器,其中包含更多“票”的点的 rho 和 theta 值。

这是代码:

这段代码给了我一个累加器数组,其中包含列表中每个点的 senoids。这些点相交的地方是每组点的直线梯度相同的地方。

霍夫积分器

问题是:如您所见,点并不能形成精确的直线。它们排列在 xy 平面上几乎对齐但不完全对齐,这就是为什么您可以在累加器中看到各种高票点,而不是每 2 组点中只有一个。

因此,当我以这样的图形方式看到它时,我可以想象这种模式:

识别模式

我很想找到一些改进这个累加器的方法,也许是改变阈值的一些方法,所以在累加器中,每组点都被视为一个大点(我不知道我是否解释得很好)就像你是个孩子,把点变大了,这样线就可以适应了。

考虑到每组 4 个点,就像它们完全对齐一样,将直线的精度降低到程序点的某种方法当然会导致在累加器中只有一个“投票最多”(RHO,THETA)点数组,然后我将能够提取其坐标并轻松创建模式。

有什么办法可以改善这一点吗?也许我应该尝试其他类型的算法作为点和直线的模式识别器?

PD:对不起,如果我没有正确解释自己。

0 投票
0 回答
31 浏览

opencv - 如何确定车道的坐标?

我正在使用 opencv 来确定两条红线之间的车道坐标,如下所示:

车道检测:

在此处输入图像描述

它不是矩形的,所以我不能cv2.rectangle用来覆盖它。大家有什么想法吗?

0 投票
1 回答
71 浏览

python - 如何检测颗粒状线条?

我正在尝试使用 cv2 检测纸张上的颗粒状打印线。我需要线条的角度。我在图像处理方面没有太多知识,我只需要检测线。我尝试使用参数,但总是检测到角度错误。有人可以帮助我。这是我的代码:

待检测图像

0 投票
0 回答
24 浏览

colors - 使用openCV在模糊颜色边界处画一条直线

我有很多 ML 输出彩色像素图像要处理。我希望openCV能够识别出这些图片的颜色边界(它们目前是模糊的),并绘制一条水平和垂直的线来表示这些边界。对不起,我刚刚使用了这个网站,我无法粘贴图片。

0 投票
1 回答
473 浏览

python - 我使用opencv python形式将模拟时钟转换为小时和分钟的数字数据,但我也需要它显示几秒钟

我已经使用 opencv 读取图像,将其转换为灰度,并使用 canny、kernel、thesh、erode 等找到边缘,并且我使用 HooughLineP() 检测到图像中的所有线条,并且我检测到了小时数和分针,但我还需要找到秒针,这是我使用过的代码

我已经在上面的代码行中分开了分针和时针,但我也需要分开秒针,请任何人帮助我!

单击此处获取示例输入图像