Tesseract OCR 无法读取从图像中剪切的明文

Tesseract ORC not reading clear text cutting from image

我在使用 Tesseract OCR 从文档中读取数字时遇到问题。

我已经从文档中剪切了文本。并使用 Tesseract OCR 读取它。但是命令行中没有打印任何内容。

我用简单的文档白色背景和黑色数字进行了测试。它工作完美。

这是我检测号码的代码:

orc->SetImage(source.data, source.size().width, source.size().height, source.channels(), 
source.step1());
QString outText = QString::fromUtf8(orc->GetUTF8Text());
if (outText != "")
    qDebug() << outText;

这是我的照片:

谁能告诉我哪里错了?

我不知道怎么用c++做。但我可以使用 python 中的此代码获取数字。我认为关键是在 hsv 颜色模式下处理。

import cv2
import numpy as np
import pytesseract

img = cv2.imread("djwtV.png", cv2.IMREAD_COLOR)
img = cv2.resize(img, None, fx=3, fy=3)
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

upper = np.array([255, 255, 150])
lower = np.array([0, 0, 0])
mask = cv2.inRange(hsv, lower, upper)
mask = cv2.bitwise_not(mask)

custom_config = r'-l eng --oem 3 --psm 6 -c tessedit_char_whitelist="0123456789,"'
text = pytesseract.image_to_string(mask, config=custom_config)
print("Detected: ", text)

cv2.imshow("img", img)
cv2.imshow("mask", mask)

cv2.waitKey(0)
cv2.destroyAllWindows()

结果

Detected:  4,691,613

如果你把代码改成这个

upper = np.array([255, 255, 125])

custom_config = r'-l jpn --oem 3 --psm 6 '

你会得到这个

Detected:  | 預り金 計①(a+b+c) |  4.691.613