基于Python自动识别图片文字—基于OCR技术实战保姆级教程(入门级)

昨天看见复旦大学一个博士后用Python语言基于OCR技术开发了一个小程序,可以检索每个人的“健康云”截图,核查是否有人还没有参加核酸检测,这个小程序取得了小小的成功,让检查“健康云”截图这件重复性很强,很枯燥的工作,在计算机的帮助下,变得非常快速,准确,给生活带来了非常大的便利。OCR是光学字符识别(英语:Optical Character Recognition,OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。

我们在日常生活中,经常有把照片中的文字提取出来的需求,虽然目前很多软件集成了这个功能,但是能自己动手写代码实现这个功能,不也是挺有意思的吗?下面我来详细说说如何实现这一操作,这些是我整理了各位大佬的资料汇总的结果:

1.准备工作

首先你需要有一个python的IDE,我使用的是pycharm这款软件,基本上身边写Python的人都推荐这款IDE,pycharm用起来非常舒服,pycharm谁用谁说好。然后我安装了anaconda环境,anaconda是懒人必备的Python编译环境,基本上集成了各种写代码需要的函数库什么的,也就是说安装anaconda后,写代码就可以随心所欲了。有了这些之后,当我们需要使用OCR技术进行自动识别图片中的文字并将其打印出来,你还需要安装一个库,我很好奇anaconda为什么没有包含这个库,反正安装就对了,这个库叫做"EasyOCR",安装后,才能写代码来使用它。

安装过程如下:

同时按住win+R打开CMD窗口,然后输入以下内容,回车

pip install easyocr

当CMD窗口中显示出下面图片中的内容时(“Successfully installed Pillow_8.4.0”),说明电脑成功安装好了EsayOCR库基于Python自动识别图片文字—基于OCR技术实战保姆级教程(入门级)_第1张图片

 写代码过程中,我发现使用png格式的照片会报错,然而使用jpg格式的照片就完全没问题,我就只好把jpn格式转化为jpg格式

2.把你需要识别的照片转换成jpg格式

网上有现成的网站支持把png格式的照片转化为jpg格式,而且完全免费,推荐使用迅捷视频(直接上网搜索迅捷视频即可)基于Python自动识别图片文字—基于OCR技术实战保姆级教程(入门级)_第2张图片

点击在线转换,按照提示一步步做即可。

3.把该照片放进和你的代码在同一个文件夹中

这样是为了方便写代码,单击代码文件右键,打开"open in",它会告诉你代码文件的路径,然后把照片复制进该路径对应的文件夹即可

基于Python自动识别图片文字—基于OCR技术实战保姆级教程(入门级)_第3张图片

 然后再打开pycharm,可以看到代码所在的文件夹中有了a.jpg,b.jpg.ccc.jpg(也就是我要识别的照片),然后就可以开始写代码了。

基于Python自动识别图片文字—基于OCR技术实战保姆级教程(入门级)_第4张图片

 代码如下:

# 导入easyocr
import easyocr
# 创建reader对象
reader = easyocr.Reader(['ch_sim','en'])
# 读取图像
result = reader.readtext('ccc.jpg')
# 该处的“ccc.jpg”为图片的名字,读者根据自己的图片名字把该处名字稍作修改即可
# 结果
print(result)
for i in result:
    word = i[1]
    print(word)

运行的效果如下:

基于Python自动识别图片文字—基于OCR技术实战保姆级教程(入门级)_第5张图片

这是被识别的图片:

基于Python自动识别图片文字—基于OCR技术实战保姆级教程(入门级)_第6张图片

 可以看出识别效果非常好。

有些人可能代码运行会报错,如果出现以下的错误代码:

Unknown C++ exception from OpenCV code

这是因为电脑的opencv版本太高,python版本太低导致的,解决办法如下:

打卡cmd窗口,

输入以下代码:

pip install opencv-python==4.5.1.48

当显示以下画面,则表示python版本更新到了需要的版本:

基于Python自动识别图片文字—基于OCR技术实战保姆级教程(入门级)_第7张图片

 然后再回去跑一下刚才的代码,就会出现想要的结果了。

总结一下,python真的是非常好用,语法很简单,而且Python有很多库函数,都是别人写好了,你直接拿过来免费用就好了,Python的代码量很小,但是实现的功能很强大,难怪现在机器学习大规模使用Python语言来实现,包括我认识的博士生都在用Python进行数据处理,还有同学在用Python进行老照片修复,这都说明了Python很好用。当然我只是个垃圾,刚学Python还不到一个月,在这只是想跟大家浅浅的跟大家分享分享用OCR技术识别图片遇到的问题和经验,希望Python大佬不要嘲笑我。

你可能感兴趣的:(图像识别--ocr,python)