【问题标题】:How to remove the dash lines in the images using cv2 and python如何使用 cv2 和 python 删除图像中的虚线
【发布时间】:2018-06-28 20:01:12
【问题描述】:

我是新来做图像处理的。我正在尝试在 python 中使用 cv2 从图像中删除虚线和虚线,但有一些困难。

我尝试过的:

(1) 我从How to remove horizontal and vertical lines from an image 得到了一些想法,删除图像中的线条。所以我想将虚线绘制成线,然后将它们删除。我使用了 Hough Tranform (Python How to detect vertical and horizontal lines in an image with HoughLines with OpenCV?) 和 (opencv detect dotted lines),但它引入了许多不必要的行,将所有数字和单词都弄乱了。我调整了“minLineLength”和“maxLineGap”,但没有帮助。造成这些的原因是单词和数字中的某些点与虚线具有相同的“maxLineGap”,因此都绘制成线。所以如果我删除这些行,我会删除有行的字符和数字的部分,例如'Liabilities'和'28,056,622'。

(2) 我尝试使用:

horizontalStructure = cv2.getStructuringElement(cv2.MORPH_RECT, (horizontalsize,1))

但我不确定如何表示虚线模式,并且 CV_SHAPE_CUSTOM 在 cv2 中不可用。

请给我一些建议。 谢谢!

原始文件

我在虚线上画线后的图像

【问题讨论】:

  • 您可以分享图片以获得更好的想法吗?仅供参考,您可以使用自定义数组形状进行形态学操作。
  • 谢谢,杰鲁。我添加了两个数字来显示我的困难。

标签: python cv2


【解决方案1】:

这是一个相当古老的帖子,但是如果对某人有用的话。使用cv2.dilate 将虚线变为直线,然后使用cv2.getStructuringElement 删除线条。试验cv2.dilate 中的扩张迭代和cv2.getStructuringElement 中的水平线大小以获得更好的结果。如果膨胀影响字符/数字,请使用cv2.bitwise 方法(和、或、异或)创建一个掩码,并仅在行上应用掩码。 hth!

【讨论】:

    猜你喜欢
    • 2022-06-16
    • 2018-08-25
    • 1970-01-01
    • 1970-01-01
    • 2014-10-04
    • 2021-10-25
    • 2016-04-30
    • 2021-10-04
    • 2019-11-24
    相关资源
    最近更新 更多