【发布时间】:2022-08-21 06:57:30
【问题描述】:
您好,我是 python 新手,我正在尝试使用 pytesseract 和 cv2 从图像中获取数字,每当我运行我的代码时,它总是缺少一个数字或运行良好,例如,它会错过下图中的数字 8,也请注意,输入中的数字可能是随机的或空的,因为它是日期输入,但我期望的完整日期长度是 8,任何有助于获得准确性的帮助都会非常有帮助。
15082022有8位数字。
谢谢。
代码
img1 = cv2.imread(\"image.tiff\")
gry1 = cv2.cvtColor(img1, cv2.COLOR_BGR2GRAY)
(h, w) = gry1.shape[:2]
gry1 = cv2.resize(gry1, (w*3, h*3))
thr1 = cv2.threshold(gry1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)[1]
thr1 = cv2.GaussianBlur(thr1, (3, 3), 0)
txt1 = pytesseract.image_to_string(
thr1, config=f\"--oem 3 --psm 11 outputbase digits tessedit_char_whitelist=0123456789\")
print(\"\".join(t for t in txt1 if t.isalnum()))
cv2.imshow(\"thr1\", thr1)
cv2.waitKey(0)
输出
1502022
预期产出
15082022
图片示例图像可能包含文本,也可能不包含,这取决于屏幕截图系统的工作方式。
标签: python ocr tesseract python-tesseract