Python实现识别图片为文字的示例代码
作者:Sir?老王 发布时间:2022-01-02 14:57:48
本来想着做一个将图片识别为文字的小功能,本想到Google上面第一页全是各种收费平台的广告。
这些平台提供的基本都是让我们通过调用相关的三方接口实现的,本着坚决不想花一分钱的态度,在论坛找有没有可以免费解决的方案。
果然,有大佬早就做出开源框架pytesseract,差点让我损失了一笔巨款,哈哈~
这次只为实现将图片识别为文字的业务功能,就不使用PyQt5做页面应用了。后面若是需要做成UI应用朋友比较多,我有时间会将这个小工具封装开发成一个PyQ5界面应用的小工具。
1、环境准备
还是老规矩吧,像一些比较有歧义的环境准备工作,我都会将我使用到的python库的版本列出来,防止小伙伴们走一些弯路。
操作系统:windows7
python版本:3.8.10
pytesseract版本:0.3.9
首先需要安装两个三方模块,一个是PIL图片处理库,另一个是pytesseract识别文字用到的python库。
pip install PIL -i https://pypi.tuna.tsinghua.edu.cn/simple/
pip install pytesseract -i https://pypi.tuna.tsinghua.edu.cn/simple/
安装好这两个python非标准库以后,还有一个比较重要的操作就是需要额外的安装一个工具Tesseract-OCR,这个工具实际上是我们用来识别图片必须的一个工具。
为了防止丢失,我将Tesseract-OCR工具的安装包和其需要的中文语言包放在了百度网盘中,在公众号内回复'Tesseract-OCR'工具可以获取网盘下载链接感兴趣的小伙伴直接去下载就好了。
下载完成以后直接进行解压即可,解压完成后的文件目录是下面这样的。
解压完成后直接安装Tesseract-OCR工具,双击打开就可以进行安装了,傻瓜式安装即可。
下面这个是我在给大家测试的时候截图的一张安装过程中的图。
安装完成后,我们需要将上面下载的中文包加入到安装好的Tesseract-OCR工具主目录下面的\tessdata文件夹中。
下面是我已经将中文语言包放入到../Tesseract-OCR/tessdata文件中了。
中文语言包放好后,就可以直接进入下一步的操作了,那就是修改环境相关的配置,实际上只要需要一个相关的参数就OK了。
找到本地的python环境的安装位置,找到我们前面安装好的pytesseract的位置去修改参数一个叫做tesseract_cmd变量的值,具体操作是这样的。
上面是我的pytesseract库的安装位置,找到之后打开pytesseract.py文件将tesseract_cmd变量的值替换为我们安装的Tesseract-OCR工具的tesseract.exe应用程序的路径。
默认Tesseract-OCR工具的安装位置是下面这样这个路径,小伙伴们可以根据自己的位置设置。
C:/Program Files (x86)/Tesseract-OCR/tesseract.exe
这是我已经修改好的pytesseract.py文件中tesseract_cmd变量的值。
tesseract_cmd = 'C:/Program Files (x86)/Tesseract-OCR/tesseract.exe'
至此,准备工作终于做完了,接下来就是我们大显身手的时间了,来轻松实现一个图片到文字的转换吧!
2、业务实现
代码实现过程相当简单,比较上面的安装配置过程简直就是小菜一碟了,导入相关的python模块中实际上只需要一行代码就可以实现将图片内容识别为文字了。
# 导入python非标准模块
from PIL import Image
import pytesseract as pyt
# 读取图片中的文字内容
text = pyt.image_to_string(Image.open('chinese-image.jpg'), lang='chi_sim')
# 打印文字内容
print(text)
3、效果展示
为了测试一下效果,我用本地的画图软件画了一张图,图片上写上文字,文字内容是:
大家好,我是 Python 集中营!下面是我的测试图片。
下面执行上面的图片识别代码块产生的效果,直接一字不差的就将文字读取的出来,简直是满满的成就感,晚上可以好好睡个觉了,没有bug的梦估计很甜!
# 大家好 , 我是 Python 集中营 !
来源:https://mp.weixin.qq.com/s/Aa5UnqilqfLX_quUpakFcQ
猜你喜欢
- 在应用系统中,尤其在联机事务处理系统中,对数据查询及处理速度已成为衡量应用系统成败的标准。而采用索引来加快数据处理速度也成为广大数据库用户所
- 用来批量切割视频的开头部分,比如去掉一部电视剧的序幕,看着难受不说数量还很多,很菜鸟的一篇,毕竟我也是一个菜鸟,首先要有ffmpeg这个软件
- 本篇文章将介绍3种常见的数据结构和同数据有关的算法。此外,在collections模块中也包含了针对各种数据结构的解决方案。Python内置
- 如何在ADO中客户端利用好缓存技术?具体应用见下例:global.asa< !--METADATA TYPE=&q
- 1、开始->运行,输入SERVICES.MSC到服务里,停止所有Oracle服务; 2、开始->程序->Oracle - OraHome81
- 数制转换即进制转换,指进制(二、八、十、十六进制)间的相互转换,计算机编程中较为常见。这里列举了python常见数制转换用法。1.进位制度P
- 反射是在PHP运行状态中,扩展分析PHP程序,导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。这种动态获取的信息以及动态调用对象
- 准备工作首先是准备工作,导入需要使用的库,读取并创建数据表取名为loandata。import numpy as npimport pand
- #! /usr/bin/python''' File&n
- 作为Python开发者,你迟早都会用到图形用户界面来开发应用。本文将推荐一些 Python GUI 框架,希望对你有所帮助,如果你有其他更好
- 1.彻底弄懂CSS盒子模式一(DIV布局快速入门) 2.彻底弄懂CSS盒子模式二(导航栏实例) 3.彻底弄懂CSS盒子模式三(浮动的表演和清
- 看这个模块要先看with as的用法,最常用的方法就是打开一个文件:with open(“filename”) as f:f.read()w
- 《色彩解答》系列之一 色彩层次这次我们将深入进去了解一下众多色彩在一起之后所存在的“比例”关系。我们在使用色彩的时候不可能把所有的色彩都做得
- 效果如下所示简介在当今信息时代,金融市场是一个引人注目的话题。作为普通人,我们也可以通过使用 Python 和 wxPython 库编写一个
- 其实这个话题已经在侧面写了好几篇深刻反思,用我自己几年工作实践的体会来看,性格决定了将来的发展。某些特质虽然可以掩饰,但在这之上必然不可能有
- 颜色目标检测就是根据物体的颜色快速进行目标定位。使用cv2.inRange函数设定合适的阈值,即可以选出合适的目标。建立项目colordet
- 在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结。json 字符串格式化在开发 web 应用的时候经常会用到
- 多线程-共享全局变量#coding=utf-8from threading import Threadimport timeg_num =
- maketrans()方法返回的字符串intab每个字符映射到字符的字符串outtab相同位置的转换表。然后这个表被传递到tra
- 1、pip下载安装1.1 pip下载进入https://pypi.python.org/pypi/pip,下载 .tar.gz压缩包1.2&