【问题标题】:Image-processing / OCR technique to separate touching characters图像处理/OCR 技术分离触摸字符
【发布时间】:2021-12-05 01:25:44
【问题描述】:

我正在尝试通过 Tesseract 为 OCR 准备图像。 然而,某些字符序列会接触(由于字体字形上的衬线),这会使它感到困惑。

例如I/U:

我注意到每个角色都有一个明亮的轮廓。如果可以将其替换为深色,则字母将获得一些喘息的空间。

    img_grey[img_grey > 100] = 0

...但我不能让它工作。

有人知道更好的技术吗?

【问题讨论】:

  • OCR 不需要这个

标签: python numpy opencv ocr


【解决方案1】:

使用 OpenCV,您可以将其转换为灰度,然后应用 Otsu 的阈值来获得二值化图像,然后对其进行腐蚀:

import cv2         
import numpy as np    

im = cv2.imread('image.png')
im = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
 
_, th = cv2.threshold(im, 120, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)     

kernel = np.ones((5,5), np.uint8)

# Increase iterations if you want it thinner
eroded = cv2.erode(th, kernel, iterations=2)

cv2.imwrite('eroded.png', eroded)

【讨论】:

    【解决方案2】:

    你可以尝试腐蚀图像,在opencv中有一个叫做腐蚀的操作,在这种情况下它基本上缩小了字符的厚度。这应该在字符之间留出一些空间,但注意不要过度使用,否则 tesseract 可能无法识别字符。可以通过反复试验获得适量的误差。

    请参阅此Link 了解更多详情。

    【讨论】:

      猜你喜欢
      • 2011-05-10
      • 2012-04-11
      • 1970-01-01
      • 2020-03-03
      • 2019-02-25
      • 2018-11-11
      • 1970-01-01
      • 2015-09-07
      • 1970-01-01
      相关资源
      最近更新 更多