python识别文字位置_如何利用Python识别图片中的文字

python识别文字位置_如何利用Python识别图片中的文字一、前言不知道大家有没有遇到过这样的问题,就是在某个软件或者某个网页里面有一篇文章,你非常喜欢,但是不能复制。或者像百度文档一样,只能复制一部分,这个时候我们就会选择截图保存。但是当我们想用到里面的文字时,还是要一个字一个字打出来。那么我们能不能直接识别图片中的文字呢?答案是肯定的。二、Tesseract文字识别是ORC的一部分内容,ORC的意思是光学字符识别,通俗讲就是文字识别。Tesserac…

大家好,又见面了,我是你们的朋友全栈君。

一、前言

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

二、Tesseract

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

(1)Tesseract的安装及配置

20053197712500044107059565.jpg

有很多版本供大家选择,大家可以根据自己的需求选择。其中w32表示32位系统,w64表示64位系统,大家选择合适的版本即可,可能下载速度比较慢,大家可以选择链接:https://pan.baidu.com/s/1YQCMnx-wCeNrJEE3wcEnQA 提取码:rbc6下载。安装时我们需要知道我们安装的位置,将安装目录配置到系统path变量当中,我们路径是D:\CodeField\Tesseract-OCR。

20053197712799588893358957.jpg

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

(2)下载语言包

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

20053197713128983687961175.png

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

(3)其它模块下载

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

pip install pytesseract

pip install pillow

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

三、文字识别

(1)单张图片识别

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

20053197713258264740720858.png

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

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目录下有简体中文包该设置才会生效。下面是我们用来识别的图片:

20053197713479204068576751.png

识别结果如下:

不 要 温 顺 的 走 进 那 个 良 夜

图片内容被准确识别出来了。有一点我们需要知道,在我们将语言设置为简体中文或其它语言后,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识别图片中文字内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145109.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • cubieboard + busybox 打造mini系统「建议收藏」

    cubieboard + busybox 打造mini系统「建议收藏」本文打造一个迷你的LINUX系统,讲述了arm嵌入式设备的常用方法和过程。适合新手入门,当然最好还是知道什么是交叉编译,和懂得linux的基本命令。先说说大致的思路,要在cubieboard板子上跑起来一个linux需要四大件:uboot,script-bin,linux内核(uImage),rootfs(这个我们自己做)前面3个已经很多人写过相关的文章了,我们不厌其烦的也多做一遍

    2022年7月22日
    8
  • java-多态

    java-多态

    2021年9月29日
    43
  • Java strictfp[通俗易懂]

    Java strictfp[通俗易懂]Javastrictfp关键字的作用strictfp关键字可以应用于方法,类和接口。strictfp关键字的非法代码Javastrictfp关键字确保您将在每个平台上获得相同的结果,如果在浮点变量中执行操作。不同平台的精度可能不同,这就是为什么java编程语言提供了strictfp关键字,它用于在每个平台上获得相同的结果。所以,现在我们就可以更好的控制浮点数据类型运算了。strictf…

    2022年10月21日
    0
  • kafka主要用来做什么_kafka概念

    kafka主要用来做什么_kafka概念Kafka最初由LinkedIn公司开发的,并于2010年贡献给了Apache基金会,之后成为Apache顶级项目。目前Kafka已经定位为一个分布式流式处理平台,它以高吞吐、可持久化、可水平扩展、支持流数据处理等多种特性而被广泛使用。目前越来越多的开源分布式处理系统如Cloudera、Storm、Spark、Flink等都支持与Kafka集成。Kafka之所以受到越来越多的青睐,与它所“扮演”的三大角色是分不开的:消息系统:Kafka和传统的消息系统(也称作消息中

    2022年9月25日
    0
  • 新版百度地图开发版SHA1值和发布版SHA1值的获取「建议收藏」

    新版百度地图开发版SHA1值和发布版SHA1值的获取「建议收藏」新版的百度开发者中心申请appkey的时候,增加了发布版SHA1值,开发版一般是默认的debug签名,和发布版正式签名的生成apk文件的sha1值是不同的,下面详细说明怎么分别获取开发版和发布版SHA1值。首先,开发版SHA1值(也就是debug签名的SHA1值)的获取方法百度开发者中心文档说的很清楚,在此也根据官网说明列出来以方便查看。方法一:打开Eclipse在Eclipse–>wi

    2022年8月11日
    3
  • PyCharm插件安装「建议收藏」

    PyCharm插件安装「建议收藏」PyCharm插件安装环境:PyCharm2018.2.2(ProfessionalEdition)Windows101、查看电脑Pycharm版本:【help】->【about】查看pycharm版本2、pycharm插件搜索并安装:【file】->【settings】->【Plugins】进入插件导览界面;点击【BrowseJetBrain…

    2022年6月24日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号