Python3一行代码实现图片文字识别的示例


Posted in Python onJanuary 15, 2018

自学Python3第5天,今天突发奇想,想用Python识别图片里的文字。没想到Python实现图片文字识别这么简单,只需要一行代码就能搞定

from PIL import Image
import pytesseract
#上面都是导包,只需要下面这一行就能实现图片文字识别
text=pytesseract.image_to_string(Image.open('denggao.jpeg'),lang='chi_sim')
print(text)

我们以识别诗词为例

下面是我们要识别的图片

Python3一行代码实现图片文字识别的示例

先看下效果图

Python3一行代码实现图片文字识别的示例 

我们运行代码后识别的结果,有几个字没有正确识别,但是大多数字都能识别出来。

风急天高猿啸哀 渚芸胄芳少白鸟飞凤
无边落木萧萧下, 不尽长量工盲衮宕衮来
万里悲秋常1乍窨, 百年多病独登氤
艰难苦恨擎霜量 漂倒新停澍酉帆

一行代码就能识别图片,我们背后要做些准备工作的

  1. 这里我们需要用到两个库:pytesseract和PIL
  2. 同时我们还需要安装识别引擎tesseract-ocr

下面就来讲讲这几个库的安装,因为只有这几个库安装好以后Python才能实现一行代码实现图片文字识别

一,pytesseract和PIL的安装

安装这两个包可以借助pip

- 1,命令行安装

pip install PIL 
pip install pytesseract

- 2,如果你用的pycharm编辑器,就可以直接借助pycharm实现快速安装。

在pycharm的Settings设置页按照下面步骤操作

Python3一行代码实现图片文字识别的示例 

这样就能成功安装pytesseract,安装PIL只需要在上面第三步里搜索PIL并点击安装即可

Python3一行代码实现图片文字识别的示例

这时我们安转好了库,运行下面代码

from PIL import Image
import pytesseract
text=pytesseract.image_to_string(Image.open('denggao.jpeg'),lang='chi_sim')
print(text)

会报下面错误,错误原因是:没有安装识别引擎tesseract-ocr

Python3一行代码实现图片文字识别的示例

二,安装识别引擎tesseract-ocr

1.下载下面的安装包,然后直接点击安装即可
tesseract-ocr安装包和中文语言包

解压安装tesseract-ocr后做如下操作,就可以支持中文识别了。因为tesseract-ocr默认不支持中文识别。

Python3一行代码实现图片文字识别的示例

2,安装完成tesseract-ocr后,我们还需要做一下配置

在C:\Users\huxiu\AppData\Local\Programs\Python\Python35\Lib\site-packages\pytesseract找到pytesseract.py打开后做如下操作

# CHANGE THIS IF TESSERACT IS NOT IN YOUR PATH, OR IS NAMED DIFFERENTLY
#tesseract_cmd = 'tesseract'
tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'

也可以通过pycharm快速打开pytesseract.py

Python3一行代码实现图片文字识别的示例

Python3一行代码实现图片文字识别的示例

Python3一行代码实现图片文字识别的示例

至此我们所有的配置就完成了,运行下面代码就可以把杜甫的登高这首图片诗解析成文字了

Python3一行代码实现图片文字识别的示例

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
python 实现一个贴吧图片爬虫的示例
Oct 12 Python
python编程使用协程并发的优缺点
Sep 20 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
浅谈python 中的 type(), dtype(), astype()的区别
Apr 09 Python
Django 实现 Websocket 广播、点对点发送消息的代码
Jun 03 Python
Django日志及中间件模块应用案例
Sep 10 Python
Python如何实现感知器的逻辑电路
Dec 25 Python
PyCharm 解决找不到新打开项目的窗口问题
Jan 15 Python
Python之基础函数案例详解
Aug 30 Python
Python中非常使用的6种基本变量的操作与技巧
Mar 22 Python
Python时间操作之pytz模块使用详解
Jun 14 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 #Python
selenium python浏览器多窗口处理代码示例
Jan 15 #Python
100行python代码实现跳一跳辅助程序
Jan 15 #Python
tornado 多进程模式解析
Jan 15 #Python
200 行python 代码实现 2048 游戏
Jan 12 #Python
一篇文章快速了解Python的GIL
Jan 12 #Python
Python获取当前公网ip并自动断开宽带连接实例代码
Jan 12 #Python
You might like
pw的一个放后门的方法分析
2007/10/08 PHP
php实现把数组按指定的个数分隔
2014/02/17 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
laravel excel 上传文件保存到本地服务器功能
2019/11/14 PHP
基于php+MySql实现学生信息管理系统实例
2020/08/04 PHP
基于JQuery的Select选择框的华丽变身
2011/08/23 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
js的正则test,match,exec详细解析
2014/01/29 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
laytpl 精致巧妙的JavaScript模板引擎
2014/08/29 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
jquery中object对象循环遍历的方法
2015/12/18 Javascript
JavaScript html5 canvas画布中删除一个块区域的方法
2016/01/26 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
Easyui ueditor 整合解决不能编辑的问题(推荐)
2017/06/25 Javascript
极简主义法编写JavaScript类
2017/11/02 Javascript
泛谈JS逻辑判断选择器 || &&
2019/05/24 Javascript
对layui数据表格动态cols(字段)动态变化详解
2019/10/25 Javascript
python中itertools模块zip_longest函数详解
2018/06/12 Python
浅谈django orm 优化
2018/08/18 Python
Python实现DDos攻击实例详解
2019/02/02 Python
Python Collatz序列实现过程解析
2019/10/12 Python
详解mac python+selenium+Chrome 简单案例
2019/11/08 Python
Python3查找列表中重复元素的个数的3种方法详解
2020/02/13 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
微信小程序实现可实时改变转速的css3旋转动画实例代码
2018/09/11 HTML / CSS
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
Prototype中如何为一个元素添加一个方法
2014/12/08 面试题
会计主管岗位职责范文
2013/11/08 职场文书
法定代表人证明书
2014/11/28 职场文书
好好学习保证书
2015/02/26 职场文书
2015年公务员个人工作总结
2015/04/24 职场文书
出生证明格式
2015/06/15 职场文书