Python识别图片文字,Python识别图片中的文字

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: