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)

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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java3y

操作系统第五篇【死锁】

3144
来自专栏机器学习算法原理与实践

scikit-learn 和pandas 基于windows单机机器学习环境的搭建

    很多朋友想学习机器学习,却苦于环境的搭建,这里给出windows上scikit-learn研究开发环境的搭建步骤。

882
来自专栏来自地球男人的部落格

使用BibTex格式时缩小参考文献的字体

在使用BibTex写参考文献的时候,所有参考文献通常是写在一个后缀为.bib文件当中。例如:所有的参考文献按照bibtex格式写在references.b...

3219
来自专栏非典型程序猿

你不知道的gRPC反向代理

可用性、可靠性和扩展性是衡量后台服务的基本标准,HTTP反向代理,是任何一个提供大型Web服务后台所必备的,用以提高服务的这些基础参数,且通过支持到负载均衡而进...

2.1K11
来自专栏我是攻城师

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

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

7391
来自专栏Python中文社区

Django 博客教程(三):创建应用和编写数据库模型

專 欄 ❈追梦人物,Python中文社区专栏作者。电子科技大学计算机学院研究生,从事大数据分析研究方向。主要使用 Python 语言进行相关数据的分析,熟练使...

2119
来自专栏Vamei实验室

协议森林11 涅槃 (TCP重新发送)

TCP协议是一个可靠的协议。它通过重新发送(retransmission)来实现TCP片段传输的可靠性。简单的说,TCP会不断重复发送TCP片段,直到片段被正确...

2036
来自专栏用户2442861的专栏

tesseract-ocr 实现图片识别功能

http://blog.sina.com.cn/s/blog_56d988430102w37c.html

5511
来自专栏小狼的世界

[每天五分钟,备战架构师-4]操作系统之设备管理

设备管理是对计算机输入、输出系统的管理,这是操作系统最具有多样性和复杂性的部分,其主要任务是选择合适的设备进行数据传输,控制数据交换的过程,为用户提供透明的接口...

1002

控制MongoDB中的集群分片

分片标记是MongoDB 2.2.0版中的一项新功能。它应该强制写入到本地数据中心,但也可以用来将集合固定到一个分片或一组分片。

2167

扫码关注云+社区

领取腾讯云代金券