Python——图片文字识别与提取

CSDN 2024-10-23 15:35:01 阅读 50

Python——图片文字识别与提取

在工作中,有时候会有大量的截图、拍照数据需要提取,传统只能人工录入。但随着人工智能的发展,OCR技术已经可以实现了图片的文字识别,本节就讲讲如何安装部署文字识别环境,并进行文字识别实战。

<1> 前置条件

<code>1、掌握Python的基本知识

2、会使用pip安装扩展包

3、下载安装pytesseract软件

4、会配置Windows的环境变量。

<2> 使用pip安装pytesseract扩展包

使用pytesseract包的第一步是使用pip安装该软件包。在命令提示符环境中,输入如下指令:

pip install pytesseract

等待上述指令提示安装安装即可,如果出错,大概率是你的网络问题。如下:

在这里插入图片描述

看到Successfully表示pytesseract包安装成功。

<3> 安装window配套软件包

<code>登录https://digi.bib.uni-mannheim.de/tesseract/网站,下载对应版本的软件。如下:

在这里插入图片描述

<code>然后打开软件,开始软件的安装。如下先选择安装的语言,建议默认English即可,因为改为其它语言可能出现意想不到的错误。点击OK即可。

在这里插入图片描述

<code>出现如下界面,点击Next即可。

在这里插入图片描述

<code>这里会出现License Agreement,这是一个授权条款,点击I Agree即可,如下:

在这里插入图片描述

<code>出现Choose Users界面,意思是你安装的软件谁可以用。建议默认,如果选择just for me会将软件安装到用户目录下。这里直接点击Next即可。

在这里插入图片描述

<code> 接下来是Choose Components,即选择组件。默认支持英文、数字的识别,如果要支持中文识别需要勾选Additional script data(han开头的4个)和Additional language data(chinese开头的4个)两项的中文内容。 然后点击Next,如下:

在这里插入图片描述

<code>这里是安装目录,建议默认,直接点击Next即可。

在这里插入图片描述

<code>接下来是选择是否将其添加到开始菜单,建议默认,直接点击Install。

在这里插入图片描述

<code>然后等待安装完成,如下。

在这里插入图片描述

<code>出现如下界面,表示安装完成。点击Next即可。

在这里插入图片描述

<code>最后点击Finish按钮,结束程序安装。

在这里插入图片描述

<4> 配置环境变量

<code>在Windows系统环境下使用,需要配置环境变量,主要涉及两个。

第一个是path变量需要新增tesseract的安装目录。我采用的默认路径,所以是:"C:\Program Files\Tesseract-OCR"。

在这里插入图片描述

<code>第二个是path变量需要新增tesseract的数据目录。如下:需要先新增一个变量名“TESSDATA_PREFIX”,变量值设置为:"安装路径\tessdata"。我采用的默认路径,所以是:"C:\Program Files\Tesseract-OCR\tessdata",如下:

在这里插入图片描述

<code>然后将新建的变量名添加到path变量列表中,如下:

在这里插入图片描述

<code>完成上述步骤后,需要重启电脑,否则接下来的步骤可能会失效。

验证是否安装成功,在命令提示符下输入tesseract --version,如果出现如下类似信息即表示成功,否则配置失败。

在这里插入图片描述

<5> 图片文字识别

<code>现在有了环境之后,小编就随便在网上找一个图来测试一下,看看效果如何,下面是在随便找的一个路牌图片

在这里插入图片描述

<code>写一个字符提取脚本,如下:

# 导入相关包

from PIL import Image

import pytesseract

# 打开图片

p='test.png'code>

im = Image.open(p)

# 使用包进行文字识别

pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

text = pytesseract.image_to_string(im, lang='chi_sim')code>

print(text)

上述代码中,除了我们安装的包pytesseract外,还使用了PIL包,主要是利用PIL.Image完成图片的读取,这里可以不必理会,按照给定的语法使用就行。

利用该代码,输入的结果如下:

在这里插入图片描述

<code>从识别的结果来看,能够识别部分文字,但对于框框内的文字识别出现了错误。对于此类问题需要对代码进行适当调优,从而去除框框的影响,有兴趣的小伙伴可以继续深入研究。

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。