gpt4 book ai didi

java - 正确填充图像中的孔

转载 作者:太空宇宙 更新时间:2023-11-04 14:58:00 25 4
gpt4 key购买 nike

我必须找出图像的轮廓。之后,我想知道如何填充数字字符中的孔,而不是其他空格中的孔。图片如下。

/image/jlLYE.jpg

实际上,如果不可能的话,我还有其他方法可以在java平台中使用openCV对该图像进行分割吗?我希望图像仅包含字符。谢谢。

/image/kY4Dh.png

最佳答案

这是一个简单的方法(但我不确定它是否在任何地方都有效。自己测试一下)

注意:代码是 Python 语言,我不会 Java,对此感到抱歉:(

  1. 加载灰度图像
  2. 应用大津二值化
import cv2
import numpy as np
img = cv2.imread('test.png',0)
ret, thresh = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY+cv2.THRESH_OTSU)

下面是阈值图像:

enter image description here

现在您可以尝试两种方法:

3a。 使用 3x3 内核进行中值模糊

res = cv2.medianBlur(thresh,3)

结果:

enter image description here

3b。 使用 3x1 内核进行侵 eclipse (垂直)。 3x1 因为图像中的所有线条都更加水平。如果其他图像中有垂直线,您可能需要采用3x3内核(不确定。检查一下)

kernel = np.ones((3,1))
cls = cv2.erode(thresh, kernel)

如果您认为自己也丢失了数字的某些部分,您可以在腐 eclipse 后应用膨胀,或者用形态学开放函数替换所有内容。

结果:

enter image description here

最后,找到轮廓。它还会拾取预处理图像中留下的一些噪点,但您可以通过检查它们的长宽比、面积等来过滤掉它们。

关于java - 正确填充图像中的孔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22952505/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com