PyTesseract - recognize digits in simple image

风格不统一 提交于 2020-01-16 05:19:12

问题


I'm trying to use pytesseract to recognize two numbers from an image:

  • I have tried --psm 6 up to 10
  • I have tried -c tessedit_char_whitelist=0123456789'

None of the above returns 49 number. Closest I got is returned 4 without 9

Do you have any tips about how to make tesseract recognize it ?


回答1:


Try --psm 13 --oem 3 (oem = 1 or 2 should do also)

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)

yields 49 as you expect on my machine.

I get the same result by downloading the image locally and firing

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

For reference my tesseract --version gives 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.




回答2:


Have you tried different --oem ? I would also try to use a --psm higher than 10.




回答3:


For me the following command just returns 4:

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

Using:

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


来源:https://stackoverflow.com/questions/53998699/pytesseract-recognize-digits-in-simple-image

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!