如何找到这张图片中线条的坐标?

问题描述 投票:0回答:1

我是 OpenCV 的新手,我想知道如何找到图像中垂直线的坐标。我有样图

image

有 4 条垂直线,我喜欢每条线的坐标。

python opencv machine-learning deep-learning straight-line-detection
1个回答
0
投票

如果你知道你的形象会看起来像那样

例如,您可能知道线条将是垂直的、黑色的且高度相同,并且图像中不会有其他项目。

在这种情况下,您不需要 OpenCV。你可以这样做:

  • 将图像转换为 Numpy 数组
  • 计算数组
    D
    ,每个像素与左边像素的差值(每行最左边的像素为0)
  • Sum
    D
    垂直,以获得单行数字。 D 中的 4 个最高值应该是您的线条的 X 坐标。 (如果亮度逐渐变化,您可能需要做一些额外的工作以防止重复识别单行)
  • Sum
    D
    水平,以获得单个column数字。结果将在中间有一长串非常高的值,在开始和结束时被非常低的值包围。中间区域的起点和终点为您提供 Y1 和 Y2 值(在所有线段之间共享)。

如果你画的只是你将要阅读的内容的模拟

例如:

  • 你的真实形象将是一张照片
  • 线条可能不是很垂直
  • 他们可能不太直
  • 你不知道它们会是什么颜色
  • 可能还有其他事情,例如盒子里的手写

那你应该使用OpenCV。阅读 Hough 变换,它将使您能够找到图像上主要“线”的方向和位置。您可以限制 Hough 变换以查找接近垂直的线。

它会给你水平位置,但你必须自己找到线的垂直端。

https://opencv24-python-tutorials.readthedocs.io/en/latest/py_tutorials/py_imgproc/py_houghlines/py_houghlines.html

© www.soinside.com 2019 - 2024. All rights reserved.