python实现图像识别的示例代码

作者:先知丨先觉 时间:2022-09-11 04:48:40 

一、安装库

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

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


pip install pytesseract
pip install pillow

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


pip install pytesseract
pip install PIL

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

python实现图像识别的示例代码

错误提示的很明显:
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

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


tesseract 3.05.01
leptonica-1.75.0
libjpeg 9b : libpng 1.6.34 : libtiff 4.0.9 : zlib 1.2.11

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

python实现图像识别的示例代码

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

python实现图像识别的示例代码

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

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

python实现图像识别的示例代码

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

python实现图像识别的示例代码

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)

python实现图像识别的示例代码 

python实现图像识别的示例代码

此时大公告成。

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

标签:python,图像识别
0
投稿

猜你喜欢

  • 成功安装vscode中go的相关插件(详细教程)

    2024-05-08 10:14:32
  • 带你一文搞懂Python文件的读写操作

    2022-04-27 18:33:44
  • Python高级特性——详解多维数组切片(Slice)

    2023-01-20 17:04:13
  • python中format的用法实例详解

    2023-08-03 12:27:28
  • 开源软件包和环境管理系统Anaconda的安装使用

    2022-07-15 13:00:13
  • mysql设置某字段不能重复问题

    2024-01-19 19:22:14
  • 简单谈谈php延迟静态绑定

    2024-06-05 15:42:33
  • 详解用Node.js实现Restful风格webservice

    2024-05-13 09:35:20
  • elementui的el-popover修改样式不生效的解决

    2024-05-09 15:22:24
  • Flask项目的部署的实现步骤

    2023-08-11 17:59:58
  • js实现百度地图定位于地址逆解析,显示自己当前的地理位置

    2024-05-08 10:12:04
  • Javascript面向对象编程(二) 构造函数的继承

    2024-04-23 09:15:03
  • Python读取本地文件并解析网页元素的方法

    2022-01-10 08:06:27
  • 详细解读MySQL的触发器trigger

    2024-01-24 18:24:24
  • MySQL中Nested-Loop Join算法小结

    2024-01-18 14:26:36
  • javascript 词法作用域和闭包分析说明

    2024-04-17 09:56:42
  • MySQL 查看链接及杀掉异常链接的方法

    2024-01-27 00:29:40
  • Go语言单元测试模拟服务请求和接口返回

    2024-04-23 09:41:13
  • Golang库插件注册加载机制的问题

    2023-06-24 04:25:59
  • 详解python使用turtle库来画一朵花

    2021-08-30 14:58:49
  • asp之家 网络编程 m.aspxhome.com