利用Python实现自动识别图片文字 -- OCR

什么是OCR?

OCR,全称Optical Character Recognition ,中文释义为光学字符识别,是指对一个包含文本信息的图片文件的识别,目前比较流行的OCR有tesseractOCR和cnOCR,在这篇文章中我们使用识别效果较好的tesseractOCR。

安装Tesseract-OCR和pytesseract

首先我们要安装tesseract,到这个网址下载:

Home · UB-Mannheim/tesseract Wiki (github.com)

在这里插入图片描述

自己按照电脑的位数选择安装包,下载下来。

下载下来后,打开安装包。

选择语言,没有中文,只好选英文。
在这里插入图片描述

然后一直next,但是注意!在安装语言时这个Additional lauguage data千万不要全选,要不然下载过程特别慢,如果需要的话,只安装里面的 Chinese组件就行了。
在这里插入图片描述

接下来就比较简单了。

安装完成后我们还得添加环境变量,打开自己安装tesseract的文件夹,复制路径,在右键此电脑,选择属性,打开高级系统设置,打开环境变量,打开用户变量的Path,新建变量,把复制的路径粘贴进去,点确定就行了,可以通过cmd输入 tesseract -v 再回车,如果出现了tesseract的版本信息就说明配置成功了。

然后为了在python中使用tesseract,我们需要安装pytesseract,直接在cmd中用pip安装就好了:

pip install pytesseract

在这里插入图片描述

(无视里面的黄色字体,是我电脑的问题,对安装什么的没有影响)

实现自动识别文字

打开python编辑器,把这段代码复制进去:

import pytesseract
from PIL import Image

pytesseract.pytesseract.tesseract_cmd = 'D://Tesseract-OCR//tesseract.exe'  # 替换成你自己的tesseract安装路径

text = pytesseract.image_to_string(Image.open('D://input.png'))	# 替换成要识别的图片路径
print(text)

这是我要识别的图片:
在这里插入图片描述

运行后输出为 Hello world ,识别率很高。

怎么样,好玩吧?不仅这样,tesseract还可以识别中文!只不过得安装相应的库,这是下载链接:
https://github.com/tesseract-ocr/tessdata/blob/main/chi_sim.traineddata
下载下来中文训练包后,把包放到tessdata中就可以识别中文了。


版权声明:本文为lsely原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。