liuwenliang的个人博客分享 http://blog.sciencenet.cn/u/liuwenliang

博文

[转载]python人工智能-图像识别

已有 1745 次阅读 2020-3-5 21:08 |个人分类:python|系统分类:科研笔记|文章来源:转载

转自:https://blog.csdn.net/github_33304260/article/details/79155154


一、安装库

首先我们需要安装PIL和pytesseract库。

PIL:(Python Imaging Library)是Python平台上的图像处理标准库,功能非常强大。

pytesseract:图像识别库。


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


pip install pytesseract

pip install pillow

1

2

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


pip install pytesseract

pip 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.01

leptonica-1.75.0

libjpeg 9b : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11

1

2

3

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


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



###安装tesseract-ocr语言包

我们去GitHub下载我们需要的语言包,这里我只下载了chi_tra.traineddata和chi_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 pytesseract

from PIL import Image


image = 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

 

此时大公告成。

————————————————

版权声明:本文为CSDN博主「先知丨先觉」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:

https://blog.csdn.net/github_33304260/article/details/79155154


注意:tesseract-ocr是一个单独的程序,需要独立安装,下载地址https://github.com/UB-Mannheim/tesseract/wiki

安装时需要选择语言和脚本,用什么语言就选对应的,否则安装时下载会慢。安装后将安装路径添加到环境变量的path下。

这样python即可调用。

效果还不错。



https://blog.sciencenet.cn/blog-3409972-1221987.html

上一篇:[转载]JAVA模拟HTTP post请求上传文件
下一篇:pip安装错误
收藏 IP: 59.109.146.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-13 09:00

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部