图像处理/OCR技术分离触摸字符

2024-06-02 08:29:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图通过Tesseract为OCR准备图像。 但是,某些字符序列会相互接触(由于字体标志符号上的衬线),这会使其混淆

例如I/U

enter image description here

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

    img_grey[img_grey > 100] = 0

。。。但我不能完全让它工作

有人知道更好的技术吗


Tags: 图像角色img标志字体符号序列字符
2条回答

您可以尝试腐蚀图像,在opencv中有一个称为腐蚀的操作,在这种情况下,它基本上收缩了角色的厚度。这应该在字符之间留出一些空间,但注意不要过度,否则tesseract可能无法识别字符。通过反复试验可以得到正确的误差量

有关更多详细信息,请参阅此Link

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

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)

enter image description here

相关问题 更多 >