• 图片文字识别


    https://blog.csdn.net/qq_37193537/article/details/81335165

    1、下载安装包

    根据https://github.com/tesseract-ocr/tesseract/wiki,我找到非官方的安装包,好像我只看到64位的安装包http://digi.bib.uni-mannheim.de/tesseract/tesseract-ocr-setup-4.00.00dev.exe,下载后直接安装即可,但是要记得你的安装目录,我们等会配置环境变量要用。

    如果不是做英文的图文识别,还需要下载其他语言的识别包https://github.com/tesseract-ocr/tesseract/wiki/Data-Files。

    简体字识别包:https://raw.githubusercontent.com/tesseract-ocr/tessdata/4.00/chi_sim.traineddata

    繁体字识别包:https://github.com/tesseract-ocr/tessdata/raw/4.0/chi_tra.traineddata

    或者直接我的百度云盘:链接:tesseract 密码:tmdm

    第二步:安装

    直接执行下载好的tesseract-ocr-setup-4.0.0-alpha.20180109.exe,下一步、下一步安装。安装过程中,会让你安装额外的语言包,可根据选择下载。

    第三步:配置环境变量

    我的是安装在C:Program Files (x86)Tesseract-OCR,界面如下:

    将“F:Tesseract-OCR”添加到环境变量中。如图:

    增加一个TESSDATA_PREFIX变量名,变量值还是我的安装路径F:Tesseract-OCR essdata这是将语言字库文件夹添加到变量中;


     

    使用
    打开命令终端,输入:tesseract -v,可以看到版本信息

    用命令tesseract --list-langs来查看Tesseract-OCR支持语言。

    将命令行切换至目标图像文件目录,比如我们转换文件为test.png(图片文件允许多种格式),位于C:UsersLianDesktop est;然后在命令行中输入

    tesseract test.png output_1 –l eng
    【语法】:  tesseract imagename outputbase [-l lang] [-psm pagesegmode] [configfile…]

    imagename为目标图片文件名,需加格式后缀;outputbase是转换结果文件名;lang是语言名称(在Tesseract-OCR中tessdata文件夹可看到以eng开头的语言文件eng.traineddata),如不标-l eng则默认为eng。

    打开文件output_1.txt,发现tesseract成功的将图像转换成152408。

    遇到的问题:
    问题1:

    没有配置环境变量,按上面情况将环境变量配置好

    问题2:

    E: estdir>tesseract ttest1.png test1 -l eng 

    Error opening data file Program Files (x86)Tesseract-OCR essdata/eng.traineddata 

    Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory. 

    Failed loading language 'eng' 

    Tesseract couldn't load any languages! 

    Could not initialize tesseract. 

       错误信息的关键词是tesseract_prefix的环境变量设置。

    解决办法:  找到testData所在的目录,默认情况下是在tesseract安装的目录,在环境变量中设置TESSDATA_PREFIX的环境变量为testdata所在的目录即可。 重新运行命令即可正常使用。
    https://www.jianshu.com/p/96b95a6c9210

    from PIL import Image
    import pytesseract
    #上面都是导包,只需要下面这一行就能实现图片文字识别
    text=pytesseract.image_to_string(Image.open('denggao.jpeg'),lang='chi_sim')
    print(text)
    

    我们以识别诗词为例
    下面是我们要识别的图片

     
    denggao.JPEG

    先看下效果图

     
    图片文字识别.gif

    我们运行代码后识别的结果,有几个字没有正确识别,但是大多数字都能识别出来。

    风急天高猿啸哀 渚芸胄芳少白鸟飞凤
    无边落木萧萧下, 不尽长量工盲衮宕衮来
    万里悲秋常1乍窨, 百年多病独登氤
    艰难苦恨擎霜量 漂倒新停澍酉帆
    

    一行代码就能识别图片,我们背后要做些准备工作的

    • 这里我们需要用到两个库:pytesseract和PIL
    • 同时我们还需要安装识别引擎tesseract-ocr

    下面就来讲讲这几个库的安装,因为只有这几个库安装好以后Python才能实现一行代码实现图片文字识别

    一,pytesseract和PIL的安装

    安装这两个包可以借助pip

    • 1,命令行安装
      pip install PIL
      pip install pytesseract
    • 2,如果你用的pycharm编辑器,就可以直接借助pycharm实现快速安装。
      在pycharm的Settings设置页按照下面步骤操作


       
      pycharm用pip安装库.png

      这样就能成功安装pytesseract,安装PIL只需要在上面第三步里搜索PIL并点击安装即可


       
      安装成功.png

    这时我们安转好了库,运行下面代码

    from PIL import Image
    import pytesseract
    text=pytesseract.image_to_string(Image.open('denggao.jpeg'),lang='chi_sim')
    print(text)
    

    会报下面错误,错误原因是:没有安装识别引擎tesseract-ocr

     
    2.png

    二,安装识别引擎tesseract-ocr

    解压安装tesseract-ocr后做如下操作,就可以支持中文识别了。因为tesseract-ocr默认不支持中文识别。


     
    支持中文识别.png
    • 2,安装完成tesseract-ocr后,我们还需要做一下配置
      在C:UsershuxiuAppDataLocalProgramsPythonPython35Libsite-packagespytesseract找到pytesseract.py打开后做如下操作
    # CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
    #tesseract_cmd = 'tesseract'
    tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
    

    也可以通过pycharm快速打开pytesseract.py

     
    打开pytesseract包.png
     
    6.png
     
    关联OCR和pytesseract.png

    至此我们所有的配置就完成了,运行下面代码就可以把杜甫的登高这首图片诗解析成文字了

     
    项目源码.png
  • 相关阅读:
    iOS开发UIKit框架-可视化编程-XIB
    ios swift例子源码网址总结
    两个单链表相交问题
    库函数atoi
    C++类型萃取
    【Swift】iOS导航栏错乱的原因
    【Swift】iOS裁剪或者压缩后出现的白边问题
    Linux进程调度分析
    【scala】可变与不可变的理解
    【scala】模式匹配
  • 原文地址:https://www.cnblogs.com/lgqboke/p/10919102.html
Copyright © 2020-2023  润新知