Python识别图片文字,Python识别图片中的文字
Tesseract
字符识别是ORC的一部分。ORC的意思是光学字符识别,也就是通常所说的字符识别。Tesseract是一个字符识别的工具,使用Python我们可以快速实现字符识别。但在此之前,我们需要完成一项繁琐的工作。
(1)安装和配置1)宇宙魔方
在https://digi.bib.uni-mannheim.de/tesseract/下载宇宙魔方
有很多版本供你选择。可以根据自己的需求选择。W32代表32位系统,w64代表64位系统。选择合适的版本就可以了,下载速度可能会慢一些。
安装时,我们需要知道我们的安装位置,并将安装目录配置到系统path变量中。我们的路径是D:\CodeField\Tesseract-OCR。
我们可以右键点击我的电脑/这台电脑-属性-高级系统设置-环境变量-路径-编辑-新建然后把我们的路径复制进去。添加完系统变量后,我们需要依次点击确定,这样才能进行配置。
(2)下载语言包
宇宙魔方默认不支持中文。如果要识别中文或其他语言,需要下载相应的语言包。下载地址如下:https://tesseract-ocr.github.io/tessdoc/Data-Files,进入网站后,让我们向下滚动:
有两个中文语言包,一个简体中文,一个繁体中文,分别是简体中文和繁体中文。我们可以选择需要的下载。下载后,我们需要把它放在Tesseract路径下的tessdata目录中。我们的路径是d : \ codefield \ tesserac-ocr \ Tess data。
(3)下载其他模块。
除了上述步骤,我们还需要下载两个模块:
pip安装pytesseract
Pip抱枕第一个用于字符识别,第二个用于读图。接下来,我们可以进行字符识别。
文字识别
(1)单张图片识别
接下来的操作就简单多了。以下是我们想要识别的图片:
接下来是我们字符识别的代码:
导入pytesseract
从PIL进口图片
#阅读图片
im=Image.open(sentence.jpg )
#识别单词
string=pytesserac . image _ to _ string(im)
打印(字符串)识别结果如下:
不要温柔地走进那个美好的夜晚!因为默认支持英文,所以我们可以直接识别,但是当我们要识别中文或者其他语言的时候,就需要做一些修改了:
导入pytesseract
从PIL进口图片
#阅读图片
im=Image.open(sentence.png )
#识别文本并指定语言
string=pytesserac . image _ to _ string(im,)
Print(string)识别时,我们设置lang=chi_sim ,即设置语言为简体中文。只有当您的tessdata目录中有简体中文包时,此设置才会生效。以下是我们用来识别的图片:
鉴定结果如下:
不要轻轻走进那个良夜。
图片内容被准确识别。我们需要知道的一点是,在我们将语言设置为简体中文或其他语言后,Tesseract仍然可以识别英文字符。
(2)批量图像识别
既然已经列出了单幅图像识别,那么肯定还有批量图像识别的功能,这就需要我们准备一个txt文件。比如我有一个text.txt文件,内容如下:
sentence1.jpg
Sentence2.jpg修改了法典如下:
导入pytesseract
#识别单词
string=pytesserac t . image _ to _ string( text . txt ,)
Print(string)但是自己写一个txt文件难免有些麻烦,所以我们可以做如下修改:
导入操作系统
导入pytesseract
#文本图片的路径
path=text_img/
#获取图片路径列表
imgs=[path I for I in OS . listdir(path)]
#打开文件
f=打开( text.txt , w ,编码=utf-8 )
#将每张图片的路径写入text.txt文件。
对于imgs:中的img
f.write(img \n )
#关闭文件
f.close()
#单词识别
string=pytesserac t . image _ to _ string( text . txt ,)
Print(string)这样我们只需要传入一个文本图片的根目录就可以批量识别了。在测试过程中发现,Tesseract对手写体、正楷等优雅字体的识别不准确,一些复杂的字符还有待改进。
而宋体、印刷体等笔画比较严格的字体识别准确率很高。另外,如果图片倾斜大于一定角度,识别结果会有很大差异。
更多信息请关注python视频教程专栏。以上是python识别图片中字符的方法的详细内容。更多信息请关注盛行IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。