OCR - 如何从轮廓单词中获取文本

OCR - how to get text from outlined words

我有一张文字图片,其中的文字是勾勒出来的,而不是填充的。Tesseract 正在努力使任何文字正确 - 有没有人能解决这些类型的问题?

我试过像反转这样的简单操作,但没有影响。我猜 tesseract 已经处理了这个。

图片示例:
Next 的典型输出:New
Previous 的典型输出:Pflevuows

(我的很简单)代码,以图片为参数:

import pytesseract
import sys
from PIL import Image

print(pytesseract.image_to_string(Image.open(sys.argv[1])))
print(sys.argv[1])

编辑:应用 threshold binary 可以让我下一个,但似乎仍然没有上一个。

这对您来说可能为时已晚,但它会对看到它的任何人有所帮助。我有同样的问题,我修好了。 (解决方案是使用 OpenCV)

首先,使用二进制阈值。使用正确的值,您的字母不应相互接触,这应该可以正常工作。这是专门为了让您可以成功地进行填充,而不是卡在褪色的灰色上(这似乎是您之前尝试过时发生的情况)

之后,用黑色填充。由于您的字母没有触及边界,因此这应该会填满所有内容,尽管当我这样做时,我不得不在图像中的每个最外层像素上调用 floodfill。

最后,翻转图像颜色。这可以通过 cv2.bitwise_not() 来完成。现在应该可以进行 OCR 了。