前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >windows 10环境下安装Tesseract-OCR与python集成

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

原创
作者头像
我是攻城师
发布2018-05-30 20:24:13
3.8K4
发布2018-05-30 20:24:13
举报
文章被收录于专栏:我是攻城师我是攻城师

前言

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

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

环境介绍

基础软件介绍:

代码语言:txt
复制
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,添加下面的安装路径:

代码语言:txt
复制
C:\Program Files (x86)\Tesseract-OCR

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

代码语言:txt
复制
命令:
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上是必须安装的,否则运行程序时,会抛出异常:

代码语言:txt
复制
[WinError 2] 系统找不到指定的文件

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

代码语言:txt
复制
pip install pillow  #一个python的图像处理库,pytesseract依赖
pip install pytesseract

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

Tesseract的使用

测试图1,纯数字:

hpop.jpg
hpop.jpg

结果:

代码语言:txt
复制
140378

测试图2,英文:

xxx.jpg
xxx.jpg

结果:

代码语言:txt
复制
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,手写数字:

orgin.jpg
orgin.jpg

结果:

代码语言:txt
复制
ar oe

python代码如下:

代码语言:txt
复制
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中集成使用,感兴趣的朋友可以尝试一下。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 环境介绍
  • Tesseract的安装
  • Tesseract的使用
  • 总结
相关产品与服务
AI 应用产品
文字识别(Optical Character Recognition,OCR)基于腾讯优图实验室的深度学习技术,将图片上的文字内容,智能识别成为可编辑的文本。OCR 支持身份证、名片等卡证类和票据类的印刷体识别,也支持运单等手写体识别,支持提供定制化服务,可以有效地代替人工录入信息。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档