我无法使用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;
这是我的照片:
有人可以告诉我我错了吗?
答案 0 :(得分:2)
我不知道如何用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