Tesseract
文字辨认是ORC的一局部内容,ORC的意义是光学字符辨认,浅显讲就是文字辨认。Tesseract是一个用于文字辨认的对象,咱们连系Python应用能够很快的完成文字辨认。然而正在此以前咱们需求实现一个繁琐的工作。
(1)Tesseract的装置及设置装备摆设
正在 https://digi.bib.uni-mannheim.de/tesseract/下载Tesseract
有不少版本供各人抉择,各人能够依据本人的需要抉择。此中w32示意32位零碎,w64示意64位零碎,各人抉择合适的版本便可,可能下载速率比拟慢。
装置时咱们需求晓得咱们装置的地位,将装置目次设置装备摆设到零碎path变量傍边,咱们门路是D:\CodeField\Tesseract-OCR。
咱们右击我的电脑/此电脑->属性->初级零碎设置->环境变量->Path->编纂->新建而后将咱们的门路复制出来便可。增加好零碎变量后后咱们还需求顺次点确定,这样才算设置装备摆设好了。
(2)下载言语包
Tesseract默许是没有支持中文的,假如想要辨认中文或许其它言语需求下载相应的言语包,下载地点以下: https://tesseract-ocr.github.io/tessdoc/Data-Files ,进入网站后咱们往下翻:
此中有两个中文言语包,一个Chinese-Simplified以及Chinese-Traditional,它们辨别是简体中文以及繁体中文,咱们抉择需求的下载便可。下载实现后咱们需求放到Tesseract的门路下的tessdata目次下,咱们门路是D:\CodeField\Tesseract-OCR\tessdata。
(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,) print(string)
正在辨认时,咱们设置lang='chi_sim',也就是把言语设置为简体中文,只有当你的tessdata目次下有简体中文包该设置才会失效。上面是咱们用来辨认的图片:
辨认后果以下:
没有 要 温 顺 的 走 进 那 个 良 夜
图片内容被精确辨认进去了。有一点咱们需求晓得,正在咱们将言语设置为简体中文或其它言语后,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使用问题
抱歉,评论功能暂时关闭!