专栏首页我是攻城师windows 10环境下安装Tesseract-OCR与python集成

windows 10环境下安装Tesseract-OCR与python集成

前言

Tesseract是一个开源的ocr引擎,可以开箱即用,项目最初由惠普实验室支持,1996年被移植到Windows上,1998年进行了C++化。在2005年Tesseract由惠普公司宣布开源。2006年到现在,都由Google公司开发。

官网宣传目前支持100多种语言的识别,根据我的测试,目前感觉其对机器打印的比较规整的英语,或者阿拉伯数字的识别准确率还是挺高的,但是对手写的任何东西,效果都非常一般,不过这已经相当不错了。

环境介绍

基础软件介绍:

windows 10
anaconda 4.5.4
python 3.6.5
opencv 3.4.1 (非必须)
pycharm 2018 (非必须,可以用自己爱好的ide)

注意这里我直接装的anaconda4.x(一个python的科学管理软件与java的maven比较类似)的版本,它已经内置支持python的各种版本,省去了一些兼容问题,同时在anaconda的cmd窗口中,如果不想使用自身的conda命令安装软件,我们还可以用pip命令安装,这一点是不冲突的,关于anaconda的安装请参考我前面的文章。

Tesseract的安装

Tesseract的github地址:

https://github.com/tesseract-ocr/tesseract

Tesseract的安装:

(1)Tesseract本身没有windows的安装包,不过它指定了一个第三方的封装的windows安装包,在其wiki上有说明,大家可直接到这个地址进行下载:https://digi.bib.uni-mannheim.de/tesseract/

下载后就是一个exe安装包,直接右击安装即可,安装完成之后,配置一下环境变量,编辑 系统变量里面 path,添加下面的安装路径:

C:\Program Files (x86)\Tesseract-OCR

安装完成之后,直接cmd输入:

命令:
tesseract -v
输出如下,即代表成功:
tesseract 4.0.0-beta.1-108-gf291
 leptonica-1.76.0
  libgif 5.1.4 : libjpeg 8d (libjpeg-turbo 1.5.3) : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11 : libwebp 0.6.1 : libopenjp2 2.2.0

注意,这一步在windows上是必须安装的,否则运行程序时,会抛出异常:

[WinError 2] 系统找不到指定的文件

(2)安装python的封装接口:

pip install pillow  #一个python的图像处理库,pytesseract依赖
pip install pytesseract

注意第一步必须安装成功,同时配置好环境变量,否则第二步必会报错,因为第二步是接口,运行时候会调用第一步的原C++写的类库。

Tesseract的使用

测试图1,纯数字:

结果:

140378

测试图2,英文:

结果:

As you can see in this screenshot, the thresholded image is very clear and the background
has been removed. Our script correctly prints the contents of the image to the console.

测试图3,手写数字:

结果:

ar oe

python代码如下:

from  PIL import  Image
import pytesseract
import  cv2 as cv


img_path='F:/fb/xxx.jpg'

# img_path='orgin.jpg'

# img_path='F:/fb/hpop.jpg'

# 依赖opencv
img=cv.imread(img_path)
text=pytesseract.image_to_string(Image.fromarray(img))


# 不依赖opencv写法
# text=pytesseract.image_to_string(Image.open(img_path))


print(text)

前面说过,对于机器打印的比较规则的字符,Tesseract识别起来还是比较给力的,至于手写的字符,识别效果比较差,可以看到上面的手写数字识别出来的都是错误的,当然这里也有调优的余地,比如给图片做灰度,模糊,去燥,二值化等等,可能结果会稍微好一点。

总结

本篇文章介绍了Tesseract在windows环境下的安装配置,同时介绍了如何在python中集成使用,感兴趣的朋友可以尝试一下。

本文分享自微信公众号 - 我是攻城师(woshigcs),作者:woshigcs

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-05-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • windows 10环境下安装Tesseract-OCR与python集成

    Tesseract是一个开源的ocr引擎,可以开箱即用,项目最初由惠普实验室支持,1996年被移植到Windows上,1998年进行了C++化。在2005年Te...

    我是攻城师
  • Scala里面如何使用break和continue

    我是攻城师
  • 如何监控你的Hadoop+Hbase集群?

    我是攻城师
  • Python环境搭建(Windows)

    代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号"""  """

    py3study
  • AI看脸、测肤,左可美妆新零售,右能智慧医美

    李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI 如果你跟我一样不喜欢XX氏里的那些护肤导购,新年好消息,AI又要来送温暖了。 至少你皮肤好不好、怎...

    量子位
  • python数据类型

    代码注释分单行和多行注释, 单行注释用#,多行注释可以用三对双引号"""  """

    py3study
  • [PHP] fastcgi_split_path_info与传递PATH_INFO

    PHP的很多框架里面都是通过获取$_SERVER['PATH_INFO']处理路由 , 这个变量是通过nginx传递过来的 , 我们在nginx中经常见到下面两...

    陶士涵
  • 商城项目-购物车功能分析

    cwl_java
  • MySQL的异步复制、全同步复制与半同步复制

    今天主要聊一下MySQL的异步复制、全同步复制与半同步复制,目前我们生产库实际上用的就是异步复制了,后面再转成半同步复制。

    木禾wen
  • centos7安装rsync及两台机器进行文件同步

    好了,上面配置完rsync了,那么接下来,假设有两台服务器,开发服务器dev及线上测试环境test,现在需要从dev将可运行代码更新到test上面去。

    拓荒者

扫码关注云+社区

领取腾讯云代金券