【问题标题】:Detect horizontal white lines from image and get their coordinates with OpenCV Python从图像中检测水平白线并使用 OpenCV Python 获取它们的坐标
【发布时间】:2017-07-10 12:26:08
【问题描述】:

我的目标是使用 OpenCV Python 将网页分成多个部分(页眉、联系人、页脚……)。我将网页的图像转换为灰度并使用 Canny。结果如下:

如您所见,零件的边界非常清晰,人眼可以检测到,我认为对于OpenCV来说这个问题很小,但我不知道如何将每个零件导出到单独的文件中(或者至少获取线条的坐标)。

这是我当前的灰度 + Canny 代码

import cv2
import numpy as np

img   = cv2.imread("image.png",cv2.IMREAD_GRAYSCALE)
edges = cv2.Canny(img, 5, 10)

【问题讨论】:

    标签: python opencv image-processing image-segmentation


    【解决方案1】:

    使用霍夫线并检查slope = 0。您会发现this YouTube video 非常有用且有趣。

    【讨论】:

    • 如果有帮助,请不要忘记将此答案标记为已接受,以便将来对其他人有所帮助。 @ĐiềnBáQuan
    【解决方案2】:

    您只需查看图片行中的统计信息即可。
    例如,您是否查看沿行的mean 强度,边界行有mean 接近1.0。

    【讨论】:

    • 如果我这么愚蠢,请原谅我,但是我怎样才能得到这些“统计数据”? :)
    • @ĐiềnBáQuan 平均值->也称为平均值。换句话说,将一行上的所有像素相加,除以宽度(一行中的像素数),你得到一个介于 0-255 之间的值(如果你有浮点数或双精度,则为 0-1.0),白色水平线应该有一个接近 255(或 1.0)的值,因为大多数值都是白色的
    • 非常感谢!我已经成功了我的目标。 :)
    • @ĐiềnBáQuan 请不要在这里使用“愚蠢”一词:您正在做很好的图像处理工作。你绝对愚蠢。
    【解决方案3】:

    这里有一些获得白线的方法:

    OpenCV 的 HoughLinesHoughLinesP 是很好的起点。

    【讨论】:

    • 感谢您的回答。研究这些主题:)
    猜你喜欢
    • 2016-07-12
    • 2019-12-07
    • 2017-02-06
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 2016-04-30
    • 2011-11-05
    • 2018-02-26
    相关资源
    最近更新 更多