无法使用 Tesseract 对字母数字图像进行 OCR

Unable to OCR alphanumerical image with Tesseract

我正在尝试使用 pytesseract 读取 python 中的一些字母数字字符串。 我对图像进行了预处理以减少噪音并将它们设为黑白,但我始终无法读取字符串中的数字。

原文:

清理后:

提取的文本:WISOMW

使用的代码:

def convert(path):    
    image = cv2.imread(path)
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    blur = cv2.GaussianBlur(gray, (3, 3), 0)
    thresh = cv2.threshold(blur, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
    invert = 255 - thresh
    cv2.imwrite("processed.jpg", invert)

    # Perform text extraction
    return pytesseract.image_to_string(invert, config="--psm 7")

我已经为 tesseract 尝试了不同的配置选项:

鉴于它能可靠地读取字母字符,我觉得我遗漏了一些明显的东西。有什么想法吗?

你们太亲密了。扩张有助于增加 white/decrease 黑色。分辨率低,因此使用小内核进行膨胀。如果您从阈值步骤中删除 _INV,则不需要再进行一次反演。

import cv2
import numpy as np
import pytesseract

img = cv2.imread('wis9mw.jpg', cv2.IMREAD_GRAYSCALE )

img = cv2.GaussianBlur(img, (3, 3), 0)
img = cv2.threshold(img, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]

kernel = np.ones((1,1), np.uint8)
img = cv2.dilate(img, kernel, iterations=1)

cv2.imwrite('processed.jpg', img)

text = pytesseract.image_to_string(img, config="--psm 6")
print(text)

给予

WIS9MW