python人工智能-图像识别

                                   
      

一、安装库

首先我们需要安装PIL和pytesseract库。
PIL:(Python Imaging Library)是Python平台上的图像处理标准库,功能非常强大。
pytesseract:图像识别库。

我这里使用的是python3.6,PIL不支持python3所以使用如下命令

pip install pytesseractpip install pillow
   
   
  • 1
  • 2

    如果是python2,则在命令行执行如下命令:

    pip install pytesseractpip install PIL
       
       
    • 1
    • 2

      这时候我们去运行上面的代码会发现如下错误:

      错误提示的很明显:
      No such file or directory :"tesseract"

      这是因为我们没有安装tesseract-ocr引擎

      如果你想要系统地学习人工智能,那么推荐你去看床长人工智能教程。非常棒的大神之作。教程不仅通俗易懂,而且很风趣幽默。点击这里可以查看教程。

      二、tesseract-ocr引擎

      光学字符识别(OCR,Optical Character Recognition)是指对文本资料进行扫描,然后对图像文件进行分析处理,获取文字及版面信息的过程。OCR技术非常专业,一般多是印刷、打印行业的从业人员使用,可以快速的将纸质资料转换为电子资料。关于中文OCR,目前国内水平较高的有清华文通、汉王、尚书,其产品各有千秋,价格不菲。国外OCR发展较早,像一些大公司,如IBM、微软、HP等,即使没有推出单独的OCR产品,但是他们的研发团队早已掌握核心技术,将OCR功能植入了自身的软件系统。对于我们程序员来说,一般用不到那么高级的,主要在开发中能够集成基本的OCR功能就可以了。这两天我查找了很多免费OCR软件、类库,特地整理一下,今天首先来谈谈Tesseract,下一次将讨论下Onenote 2010中的OCR API实现。可以在这里查看OCR技术的发展简史。
      Tesseract的OCR引擎最先由HP实验室于1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一。然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封。
      数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技术研究所获得,并求诸于Google对Tesseract进行改进、消除Bug、优化工作。

      ###安装tesseract-ocr引擎

      brew install tesseract
        
        
      • 1

        然后我们通过tesseract -v看一下是否安装成成功

        tesseract 3.05.01leptonica-1.75.0libjpeg 9b : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11
          
          
        • 1
        • 2
        • 3

          这时候我们运行上面代码会出现乱码

          这是因为tesseract默认只有语言包中没有中文包,如下图:

          ###安装tesseract-ocr语言包
          我们去GitHub下载我们需要的语言包,这里我只下载了chi_tra.traineddatachi_sim.traineddata
          github:tesseract-ocr/tessdata
          然后放到/usr/local/Cellar/tesseract/3.05.01/share/tessdata路径下面。

          可以通过tesseract --list-langs查看本地语言包:

          可以通过tesseract --help-psm 查看psm

          0:定向脚本监测(OSD)
          1: 使用OSD自动分页
          2 :自动分页,但是不使用OSD或OCR(Optical Character Recognition,光学字符识别)
          3 :全自动分页,但是没有使用OSD(默认)
          4 :假设可变大小的一个文本列。
          5 :假设垂直对齐文本的单个统一块。
          6 :假设一个统一的文本块。
          7 :将图像视为单个文本行。
          8 :将图像视为单个词。
          9 :将图像视为圆中的单个词。
          10 :将图像视为单个字符。

          为什么这里要强调语言包和psm,因为我们在使用中会用到,
          比如多个语言包组合并且视为统一的文本块将使用如下参数:
          pytesseract.image_to_string(image,lang="chi_sim+eng",config="-psm 6")
          这里我们通过+来合并使用多个语言包。

          接下来我们看一下配置好一切的正确结果。

          import pytesseractfrom PIL import Imageimage = Image.open("../pic/c.png")code = pytesseract.image_to_string(image,lang="chi_sim",config="-psm 6")print(code)
            
            
          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
                                 
            • 1
              点赞
            • 0
              收藏
              觉得还不错? 一键收藏
            • 0
              评论

            “相关推荐”对你有帮助么?

            • 非常没帮助
            • 没帮助
            • 一般
            • 有帮助
            • 非常有帮助
            提交
            评论
            添加红包

            请填写红包祝福语或标题

            红包个数最小为10个

            红包金额最低5元

            当前余额3.43前往充值 >
            需支付:10.00
            成就一亿技术人!
            领取后你会自动成为博主和红包主的粉丝 规则
            hope_wisdom
            发出的红包
            实付
            使用余额支付
            点击重新获取
            扫码支付
            钱包余额 0

            抵扣说明:

            1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
            2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

            余额充值