Computer vision tesseract-如何处理字符分隔符

Computer vision tesseract-如何处理字符分隔符,computer-vision,ocr,tesseract,python-tesseract,Computer Vision,Ocr,Tesseract,Python Tesseract,如何正确处理使用tesseract(预处理或通过特殊tesseract配置)识别字符分隔符内的文本,尤其是梳型(第三幅图像),如以下三幅图像所示: https://i.stack.imgur.com/Jb5Qd.png https://i.stack.imgur.com/GhzCa.png https://i.stack.imgur.com/rI4c1.png 1) 我试图对其执行OCR的特定图像如下所示。 图像清晰,分辨率高,无噪声。如果将此图像直接输入tesseract(尝试了几乎所有的页

如何正确处理使用tesseract(预处理或通过特殊tesseract配置)识别字符分隔符内的文本,尤其是梳型(第三幅图像),如以下三幅图像所示:

https://i.stack.imgur.com/Jb5Qd.png
https://i.stack.imgur.com/GhzCa.png
https://i.stack.imgur.com/rI4c1.png
1) 我试图对其执行OCR的特定图像如下所示。 图像清晰,分辨率高,无噪声。如果将此图像直接输入tesseract(尝试了几乎所有的页面段模式),则输出如下:

1
11, 9;9j1 | 0,7 4142 |
正如所观察到的,数字是正确的OCR,并显示为提取文本的子集。然而,分离器也被识别为“1”、“7”、“4”、“|”。预计产量为1992 07 12

2) 我不熟悉图像识别。图像预处理是OCR之前的一个重要步骤。我尝试了从左、下、右三个方向进行泛光填充,以移除字符分隔符。这一概念取材于此: 虽然此解决方案适用于此特定映像,但它肯定不是通用解决方案。由于这些字符分隔符在许多形式中都很常见,因此必须有一种很好的方法来提取文本

3) 我曾尝试过谷歌搜索,但在搜索结果的前10页中找不到任何可靠的内容(在不相关的主题上有很多噪音)。我的搜索词是“tesseract字符分隔符”。搜索结果不佳可能是因为搜索词选择不当,这与CV社区使用的搜索词不同


4) 我试过abbyy finereader,文本识别没有问题。但是,此应用程序是付费的,并且是封闭源代码

有很多方法可以解决你的问题。例如,如果构成单元的线已连接,则可以使用opencv过滤大型连接组件

gray = cv2.imread('path_to_your/image.png', 0)
_, blackAndWhite = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY_INV)

nlabels, labels, stats, centroids = cv2.connectedComponentsWithStats(blackAndWhite, None, None, None, 8, cv2.CV_32S)
sizes = stats[1:, -1]
img2 = np.zeros((labels.shape), np.uint8)

for i in range(0, nlabels - 1):
    if sizes[i] <= 5000:   #CHANGE THIS VALUE TO CHANGE THRESHOLD.
        img2[labels == i + 1] = 255

res = cv2.bitwise_not(img2)

cv2.imshow('res.png', res)
cv2.waitKey(0)
gray=cv2.imread('path\u to\u your/image.png',0)
_,blackAndWhite=cv2.阈值(灰色,127255,cv2.阈值\u二进制\u INV)
NLabel、label、stats、centroids=cv2.connectedComponentsWithStats(黑白、无、无、无、8、cv2.CV_32S)
大小=统计数据[1:,-1]
img2=np.zero((labels.shape),np.uint8)
对于范围(0,nlabels-1)中的i:

如果[i]@GhostCat我已经改进了我的帖子,希望有人能给我一些指导/建议。互联网上与识别字符分隔符内字符相关的信息严重缺乏。这意味着我可能做错了什么,这就是为什么我要发布这些问题。除了我已经更新的信息之外,我不确定还能提供什么其他信息。如果您有任何建议,请发布更新。我认为现在看起来更好了!祝你好运不应该是“1991 07 12”吗?