python识别图片中文字的方法-Python教程

资源魔 31 0

Tesseract

文字辨认是ORC的一局部内容,ORC的意义是光学字符辨认,浅显讲就是文字辨认。Tesseract是一个用于文字辨认的对象,咱们连系Python应用能够很快的完成文字辨认。然而正在此以前咱们需求实现一个繁琐的工作。

(1)Tesseract的装置及设置装备摆设

正在 https://digi.bib.uni-mannheim.de/tesseract/下载Tesseract

1.jpg

有不少版本供各人抉择,各人能够依据本人的需要抉择。此中w32示意32位零碎,w64示意64位零碎,各人抉择合适的版本便可,可能下载速率比拟慢。

装置时咱们需求晓得咱们装置的地位,将装置目次设置装备摆设到零碎path变量傍边,咱们门路是D:\CodeField\Tesseract-OCR。

2.jpg

咱们右击我的电脑/此电脑->属性->初级零碎设置->环境变量->Path->编纂->新建而后将咱们的门路复制出来便可。增加好零碎变量后后咱们还需求顺次点确定,这样才算设置装备摆设好了。

(2)下载言语包

Tesseract默许是没有支持中文的,假如想要辨认中文或许其它言语需求下载相应的言语包,下载地点以下: https://tesseract-ocr.github.io/tessdoc/Data-Files ,进入网站后咱们往下翻:

3.jpg

此中有两个中文言语包,一个Chinese-Simplified以及Chinese-Traditional,它们辨别是简体中文以及繁体中文,咱们抉择需求的下载便可。下载实现后咱们需求放到Tesseract的门路下的tessdata目次下,咱们门路是D:\CodeField\Tesseract-OCR\tessdata。

(3)其它模块下载

除了了下面的步骤,咱们还需求下载两个模块:

pip install pytesseract
pip install pillow

第一个是用于文字辨认的,第二个是用于图片读取的。接上去咱们就能够进行文字辨认了。

文字辨认

(1)单张图片辨认

接上去的操作就要简略的多,上面是咱们要辨认的图片:

5.jpg

接上去就是咱们文字辨认的代码:

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,)
print(string)

正在辨认时,咱们设置lang='chi_sim',也就是把言语设置为简体中文,只有当你的tessdata目次下有简体中文包该设置才会失效。上面是咱们用来辨认的图片:

6.JPG

辨认后果以下:

没有 要 温 顺 的 走 进 那 个 良 夜

图片内容被精确辨认进去了。有一点咱们需求晓得,正在咱们将言语设置为简体中文或其它言语后,Tesseract仍是能够辨认出英文字符。

(2)批量图片辨认

既然咱们把单张图片辨认列进去了,就一定另有批量图片辨认这个性能,这就需求咱们预备一个txt文件了,比方我有text.txt文件,内容以下:

sentence1.jpg
sentence2.jpg

咱们将代码修正为以下:

import pytesseract
# 辨认文字
string = pytesseract.image_to_string('text.txt',)
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',)
print(string)

这样咱们只要要传入一个文字图片的根目次就能够批量进行辨认了。正在测试进程中发现,Tesseract敌手写体、行楷等超脱的字体辨认不许确,对一些复杂的字辨认也有待晋升。

然而宋体、印刷体等笔划谨严的字体辨认精确率很高。另外假如图片的歪斜年夜于肯定的角度,辨认后果也会有很年夜差异。

更多相干常识请存眷python视频教程栏目

以上就是python辨认图片中文字的办法的具体内容,更多请存眷资源魔其它相干文章!

标签: Python python教程 python编程 python使用问题

抱歉,评论功能暂时关闭!