|
前言
出这个教程的背景需求是:有的项目需要批量导出Word报告,人工写报告太慢了,于是用Python来批量生成报告,但是报告中的某些文字来源于图片中,免费的OCR库识别率很差,论怎么调整都会有错误的识别,因为图片背景比较复杂,于是用Python整合百度OCR进行图片文字识别,发现非常的好用,而且每月百度OCR都有1千的免费使用次数额度,完全满足普通场景。
步骤概述
1百度云开启OCR
2创建OCR应用并获取密钥
3Python整合百度云OCR
4多场景测试
5封装为工具函数
步骤1:百度云开启OCR
进入百度云址cloudbaiducom,搜索OCR,如图
点击立即使用,如图
完成,如图
完成后还是点击立即使用去控制台,如图
点击概述中的去领取,如图
选择通用场景OCR,勾选全部,点击0元领取,如图
步骤2:创建OCR应用并获取密钥
在控制点击创建应用,如图
填入任意称,只勾选通用文字识别(标准版),底部选择个人,描述填入个人测试,然后点击立即创建,如图
创建后可在控制台的应用列表看到自己的密钥
APIKey就是access_key_id,SecretKey就是access_key_secret
建议把这两个密钥保存下来,如图
步骤3:Python整合百度云OCR
点击左侧栏目的API在线调试,然后切换到通用文字识别(标准版),如图
在上图此时可以看到右边直接为我们演示了python的示例代码,我们将其复制下来,在pycharm中进行测试修改,然后直接运行看看,可以看到提示我们参数中没有携带图片,如图
来到刚才的示例代码处,切换到技术文档(注意:还是通用文字识别标准版),往下拉可以看到有个image参数,这个参数就是提供给我们传图片的,如图
来到pycharm,我们创建一个函数为get_file_content_as_base64,用于获取读取图片数据,代码为如下
defget_file_content_as_base64(path,urlencoded=False):
"""
获取文件base64编码
:parampath:文件路径
:paramurlencoded:是否对结果进行urlencoded
:return:base64编码信息
"""
withopen(path,"rb")asf:
content=base64b64encode(fread())decode("utf8")
ifurlencoded:
content=urllibparsequote_plus(content)
returncontent
然后我们找一张带文字的图片放在和python文件同目录下,比较好是背景比较复杂的,这样更能体现大厂OCR的强大之处,我使用的图为如下
一定要注意:所使用的图片不可超过8m,因为百度OCR不支持大图的处理,若非要处理,可用其他工具将图片压缩体积
我将图片和python文件放在一起,便于测试,如图
现在我们向代码中传递图片并运行代码,使用刚才创建的函数get_file_content_as_base64获取图片数据,然后在payload后拼接图片参数,运行,如图
可以看到控制台中便是OCR识别后响应的JSON数据,至此,幽络源的python整合OCR图像文字识别基础教程结束,后续可根据需要自行封装为工具函数、处理识别后的数据、做成识别软件等。
我们的络技术交流Q群:307531422
现在,大家对源码网都比较关注,希望能从中获得更多的收益。提供经过严格测试的免费源码、各种线上兼职和网络兼职的网创教程、编程及网络相关的技术教程分享,助您轻松获取资源和技术支持。https://www.youluoyuan.com/
|
|