为什么 pytesseract 无法识别这个简单图像中的数字?

Why does pytesseract fail to recognize digits in this simple image?

我正在尝试使用 pytesseract 从图像中识别两个数字:

None以上returns49个数。我得到的最接近的返回 4 没有 9

关于如何让 tesseract 识别它,你有什么技巧吗?

您尝试过不同的 --oem 吗?我也会尝试使用高于 10 的 --psm

尝试 --psm 13 --oem 3oem = 1 或 2 也应该这样做)

import pytesseract
from PIL import Image
import requests
import io

response = requests.get('https://i.stack.imgur.com/oAAXR.png')
text = pytesseract.image_to_string(Image.open(io.BytesIO(response.content)), lang='eng',
                    config='--psm 13 --oem 3 -c tessedit_char_whitelist=0123456789')

print(text)

产量 49 正如您在我的机器上所期望的那样。

我通过本地下载图像并触发得到相同的结果

tesseract oAAXR.png output --oem 3 --psm 13 -l eng

参考我的tesseract --version给出 tesseract 4.0.0 leptonica-1.77.0 libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 2.0.1) : libpng 1.6.36 : libtiff 4.0.10 : zlib 1.2.11 : libwebp 1.0.1 Found AVX2 Found AVX Found SSE

对我来说,下面的命令只是 returns 4:

tesseract oAAXR.png out --dpi 300 --psm 11 --oem 1 -c tessedit_char_whitelist=0123456789

使用:

tesseract 4.1.1-rc2-17-g6343
 leptonica-1.76.0
  libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.2) : libpng 1.6.36 : libtiff 4.0.10 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.3.0
 Found AVX2
 Found AVX
 Found FMA
 Found SSE
 Found libarchive 3.3.3 zlib/1.2.11 liblzma/5.2.4 bz2lib/1.0.6 liblz4/1.8.3 libzstd/1.3.8