V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
codelover2016
V2EX  ›  Python

Python 有什么无脑 OCR 库能搞掂下面这种图片么?

  •  
  •   codelover2016 ·
    liguobao · 2019-01-23 22:18:56 +08:00 · 3639 次点击
    这是一个创建于 2157 天前的主题,其中的信息可能已经有所发展或是发生改变。

    基本没有噪点的图片,很纯净的数字.

    20 条回复    2019-01-26 18:48:38 +08:00
    zzj0311
        1
    zzj0311  
       2019-01-23 22:37:16 +08:00 via Android
    那么规整 mask 套不就完了。。
    nicevar
        2
    nicevar  
       2019-01-23 22:38:40 +08:00
    直接调用 tesseract 就行了,或者用百度的 ocr 也行,这种简单的数字一天能有 5w 次免费额度
    lsvih
        3
    lsvih  
       2019-01-23 22:38:42 +08:00
    tesseract
    xiumie
        4
    xiumie  
       2019-01-23 23:05:28 +08:00
    tesseract py
    codelover2016
        5
    codelover2016  
    OP
       2019-01-23 23:19:25 +08:00
    @nicevar @xiumie @lsvih tesseract 我试过,没出来...
    好惨.
    codelover2016
        6
    codelover2016  
    OP
       2019-01-23 23:19:40 +08:00
    @zzj0311 mask 是哪个库?
    Geno1024
        7
    Geno1024  
       2019-01-23 23:41:51 +08:00
    😐直接打字符像素点的匹配不就是了……
    Vegetable
        8
    Vegetable  
       2019-01-23 23:50:03 +08:00 via iPhone
    @codelover2016 这个绝对 tesseract 绝对可以的,甚至不需要训练。
    注意一下参数,纯数字,单行,英语。具体参数不记得了。
    nicevar
        9
    nicevar  
       2019-01-23 23:58:24 +08:00
    @codelover2016 这种纯数字太简单了,你需要 tessdata,python 用 pytesseract 库就行了
    tomczhen
        10
    tomczhen  
       2019-01-24 00:09:34 +08:00
    这种程度的 tesseract 绝对可以了,之前弄着玩了一下,比这个复杂多了的也有 70%的正确率。
    ioven
        11
    ioven  
       2019-01-24 09:48:14 +08:00
    百度、腾讯、搜狗的 ocr 都能识别
    liberize
        12
    liberize  
       2019-01-24 10:01:24 +08:00
    tesseract 参数你没设对吧,这种 100%识别率吧
    linap
        13
    linap  
       2019-01-24 13:41:04 +08:00 via Android
    分割成相同宽度,取 5 个特征点,搞定
    locoz
        14
    locoz  
       2019-01-24 23:01:42 +08:00
    这种简单的纯数字可以切片好直接对比像素点,比 OCR 的效率还高
    codelover2016
        15
    codelover2016  
    OP
       2019-01-25 23:55:07 +08:00
    @liberize 能不能伸手党要个代码...
    codelover2016
        16
    codelover2016  
    OP
       2019-01-25 23:55:19 +08:00
    @locoz 这个非常有道理...
    liberize
        17
    liberize  
       2019-01-26 11:46:36 +08:00
    @codelover2016

    $ cat test.py

    import pytesseract
    from PIL import Image

    img = Image.open('test.jpg')
    print pytesseract.image_to_string(img, lang='eng', config='-psm 6 digits')


    $ cat digits

    tessedit_char_whitelist 0123456789
    debug_file /dev/null

    $ python test.py
    659208134

    digits 文件放到 .py 相同目录(也许可以写到代码里,自己研究吧)
    liberize
        18
    liberize  
       2019-01-26 11:48:42 +08:00
    额,少复制了一个 7,实际结果是对的,你自己试试把
    liberize
        19
    liberize  
       2019-01-26 11:49:19 +08:00
    模板匹配也可以,代码稍微多点,自己写吧
    Nick2VIPUser
        20
    Nick2VIPUser  
       2019-01-26 18:48:38 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1432 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 17:18 · PVG 01:18 · LAX 09:18 · JFK 12:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.