一、前言

不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制。或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存。但是当我们想用到里面的文字时,还是要一个字一个字打出来。那么我们能不能直接识别图片中的文字呢?答案是肯定的。

二、Tesseract

文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别。Tesseract是一个用于文字识别的工具,我们结合Python使用可以很快的实现文字识别。但是在此之前我们需要完成一个繁琐的工作。

(1)Tesseract的安装及配置

Tesseract的安装我们可以移步到该网址 https://digi.bib.uni-mannheim.de/tesseract/,我们可以看到如下界面:

安装时我们需要知道我们安装的位置,将安装目录配置到系统path变量当中,我们路径是D:CodeFieldTesseract-OCR

我们右击我的电脑/此电脑->属性->高级系统设置->环境变量->Path->编辑->新建然后将我们的路径复制进去即可。添加好系统变量后后我们还需要依次点确定,这样才算配置好了。

(2)下载语言包

Tesseract默认是不支持中文的,如果想要识别中文或者其它语言需要下载相应的语言包,下载地址如下: https://tesseract-ocr.github.io/tessdoc/Data-Files ,进入网站后我们往下翻:

其中有两个中文语言包,一个Chinese-Simplified和Chinese-Traditional,它们分别是简体中文和繁体中文,我们选择需要的下载即可。下载完成后我们需要放到Tesseract的路径下的tessdata目录下,我们路径是D:CodeFieldTesseract-OCRtessdata。

(3)其它模块下载

除了上面的步骤,我们还需要下载两个模块:

pip install pytesseract
pip install pillow

第一个是用于文字识别的,第二个是用于图片读取的。接下来我们就可以进行文字识别了。

三、文字识别

(1)单张图片识别

接下来的操作就要简单的多,下面是我们要识别的图片:

接下来就是我们文字识别的代码:

import pytesseract
from PIL import Image
# 读取图片
im = Image.open('sentence.jpg')
# 识别文字
string = pytesseract.image_to_string(im)
print(string)

识别结果如下:

Do not go gentle into that good night!

因为默认是支持英文的,所以我们可以直接识别,但是当我们要识别中文或其它语言时就需要做些修改:

import pytesseract
from PIL import Image
# 读取图片
im = Image.open('sentence.png')
# 识别文字,并指定语言
string = pytesseract.image_to_string(im, lang='chi_sim')
print(string)

在识别时,我们设置lang='chi_sim',也就是把语言设置为简体中文,只有当你的tessdata目录下有简体中文包该设置才会生效。下面是我们用来识别的图片:

识别结果如下:

不 要 温 顺 的 走 进 那 个 良 夜

图片内容被准确识别出来了。有一点我们需要知道,在我们将语言设置为简体中文或其它语言后,Tesseract还是可以识别出英文字符。

(2)批量图片识别

既然我们把单张图片识别列出来了,就肯定还有批量图片识别这个功能,这就需要我们准备一个txt文件了,比如我有text.txt文件,内容如下:

sentence1.jpg
sentence2.jpg

我们将代码修改为如下:

import pytesseract
# 识别文字
string = pytesseract.image_to_string('text.txt', lang='chi_sim')
print(string)

但是这样自己写一个txt文件难免有些麻烦,因此我们又可以进行如下修改:

import os
import pytesseract
# 文字图片的路径
path = 'text_img/'
# 获取图片路径列表
imgs = [path + i for i in os.listdir(path)]
# 打开文件
f = open('text.txt', 'w+', encoding='utf-8')
# 将各个图片的路径写入text.txt文件当中
for img in imgs:f.write(img + 'n')
# 关闭文件
f.close()
# 文字识别
string = pytesseract.image_to_string('text.txt', lang='chi_sim')
print(string)

这样我们只需要传入一个文字图片的根目录就可以批量进行识别了。在测试过程中发现,Tesseract对手写体、行楷等飘逸的字体识别不准确,对一些复杂的字识别也有待提升。但是宋体、印刷体等笔画严谨的字体识别准确率很高。另外如果图片的倾斜大于一定的角度,识别结果也会有很大差别。

赞赞赞!!!!!!!!顺便点个关注呗

python 图片识别_Python—识别图片中的文字相关推荐

  1. Python利用百度AI提取图片中的文字信息

    Python利用百度AI提取图片中的文字信息 安装百度AI : pip install baidu-aip 到https://console.bce.baidu.com/ai/创建文字识别应用,获取A ...

  2. python 图片识别_python识别图片文字

    滑稽研究所 python识别图片文字 哈喽,大家好呀,我是滑稽君.大家在写论文时可能经常碰到无法复制文字的文章.明明找到了需要的内容却无法直接复制使用,这让我们十分苦恼.那么本期滑稽君就告诉大家如何使 ...

  3. python文字提取关键信息_Python提取图片中的文字信息,腾讯内部技术,一行代码搞定!...

    用过手机QQ就知道,点击一个图片会弹出一个小功能,那就是提取图片中的文字.非常方便实用,那么很难实现吗? 利用Python提取图片中的文字信息,只需要一行代码就能搞定! 当然,这是吹牛皮的,但是真正的 ...

  4. 如何通过OCR技术识别视频和图片中的文字信息?

    随着互联网世界的不断充盈,各种各样的视频.文字.图片爆炸式增长,那么如何才能保障信息的健康性.文明性?如何监控这些新增内容和现存内容呢?舆情监控的重要性可谓不言而喻.中安未来视频文字识别SDK具有强大 ...

  5. python数字字母识别_python识别验证码——一般的数字加字母验证码识别

    转自:https://www.cnblogs.com/MrRead/p/7656800.html 1.验证码的识别是有针对性的,不同的系统.应用的验证码区别有大有小,只要处理好图片,利用好pytess ...

  6. python图片保存_python保存图片

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 最近在写爬虫但是图片保存用了很多种方法都没办法实现最后用这种方法实现了impor ...

  7. 计算机翻译图片,如何将电脑图片中的文字翻译成英文

    原标题:如何将电脑图片中的文字翻译成英文 怎样将电脑中的图片文字翻译成英文呢?不管是在工作还是生活中都经常遇到这样的问题,如果想快速实现翻译的话我们可以借助一些工具来完成,但是具体要怎样去操作呢?下面 ...

  8. python图片马赛克_Python实现PS滤镜中马赛克效果示例

    本文实例讲述了Python实现PS滤镜中马赛克效果.分享给大家供大家参考,具体如下: 这里利用 Python 实现PS 滤镜中的马赛克效果,具体的算法原理和效果可以参考附录说明,Python示例代码如 ...

  9. python 图片合并_Python 图片合并pdf

    1.缘起 最近需要将记的笔记整理成一个 pdf 进行保存,所以就研究了一下如何利用 Python 代码将拍下来的照片整个合并成一个 pdf. 2.过程 拿到一个需求最重要的就是将大块任务拆分成一个个小 ...

最新文章

  1. 清华男神再获世界大奖,从放牛娃到清华校长,他考研3次,读博7年,做出诺奖级的科研成果...
  2. Java基础篇2——运算符
  3. django+nginx+uwsgi项目部署文档整理
  4. 从零搭建LNMP环境(三) - 安装MySQL数据库服务器
  5. 编码的未来是“无代码”
  6. A-AUTOバッチ管理ツール(HOLD之后,如何再次启动)
  7. 末学者笔记--Jenkins+Git+Gitlab+Ansible实现持续集成自动化部署静态网站
  8. 使用Nodejs将js文件转换成json文件
  9. Linux学习笔记(更新中)
  10. 初识Vocaloid3
  11. Excel卡死无响应问题
  12. 科学计算机符号大全,计算机符号代码大全
  13. RabbitMQ(一) | MQ技术对比,以及对RabbitMQ五种消息模型的使用
  14. 【数据治理】数据安全-数据脱敏方案
  15. 简图记录-正则表达式原理与应用基础
  16. 手机 html病毒,超级手机病毒
  17. 蓝桥杯报名Java得奖率_夺冠概率--蓝桥杯
  18. 企业对C/C++程序员的技能要求
  19. Elsevier期刊投稿疑问
  20. TikTok推出多语种字幕和翻译工具

热门文章

  1. compare比对工具
  2. 国家司法考试(法考)成功上岸前辈备考经验分享
  3. delphi 域名解析IP 域名转为IP地址
  4. JAVA工作日历天数(工作日/非工作日)- 基于法定节假日
  5. laravel-excel导出并写入图片
  6. 这十个时间千万别受孕
  7. JAVA入门学习资料
  8. 【C语言程序设计·考试复习】视频讲解课程合集
  9. 频率响应、零极点、稳定性专题
  10. 【JAVA长虹键法】第一式 初识设计模式(23种设计模式)