python实现图片文字识别(python自动识别图片文字)
python实现图片文字识别,原文标题:20行python代码进行批量图片文字识别,5分钟学会。我最近有个需求,就是想把一批图片分别进行文字识别,网
python实现图片文字识别,原文标题:20行python代码进行批量图片文字识别,5分钟学会。
我最近有个需求,就是想把一批图片分别进行文字识别,网上的很多工具很多只能一张张识别,而且准确率还大打折扣。
这次利用python来开发一段脚本,最终的成果是这样的。

注意:text.doc 是新生成的
首先需要你需要把你的文件存在一个文件夹里,然后用os模块下的listdir方法来找到里边的文件,然后用一个for循环结合with open 方法打开并读取所有需要的文件,我存放在了桌面上C:UsersitcastDesktopocr
代码如下:
import osdirs = os.listdir(r'C:UsersitcastDesktopOCR')print(dirs)for dir in dirs: filepath = f"C:UsersitcastDesktopocr{dir}" print(filepath) with open(f"C:UsersitcastDesktopocr{dir}","rb") as f: image = f.read()
然后用第三方的应用,我这里用到的是百度API,也就是百度智能云里的应用,下方来说一下这个应该怎么使用:
首先你得有个百度账号,然后点击登陆。登陆后找到这个通用文字识别,如果你找不到的话,可以直接打开这个网址:
https://console.bce.baidu.com/ai/#/ai/ocr/overview/index

然后需要创建一个应用,名称和描述可以随便起,应用归属个人,其他选择默认即可。
然后点击应用列表,你就能看到刚刚创建应用的AppID,API Key,Secret Key,这几个数就是请求API的钥匙。

到这一步还没完,返回上一个页面,点击免费领取资源,一定别忘了,否则我们创建的应用将无法使用。

需要等待10分钟左右才能创建好,接下来可以写接下来的代码。
其实这里有官方的技术文档,我们可以参考使用。

可以选择python语言进行学习。

首先需要安装百度api。
如果已安装pip,执行pip install baidu-aip即可。如果已安装setuptools,执行python setup.py install即可。
新建AipOcr
AipOcr是OCR的Python SDK客户端,为使用OCR的开发人员提供了一系列的交互方法。
参考如下代码新建一个AipOcr:
from aip import AipOcr""" 你的 APPID AK SK """APP_ID = '你的 App ID'API_KEY = '你的 Api Key'SECRET_KEY = '你的 Secret Key'client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
在上面代码中,常量APP_ID在百度智能云控制台中创建,常量API_KEY与SECRET_KEY是在创建完毕应用后,系统分配给用户的,均为字符串,用于标识用户,为访问做签名验证,可在AI服务控制台中的应用列表中查看。
到这一步创建client就已经好了,接下来我们要具体连接图片识别了。
在接口说明里,还有一个可选参数,可以选择图片文字的朝向,还有文字的语言等等,这里我们选择检测文字的朝向(如果有别的方向的也可以识别到)。
options = {"detect_direction":"true"}
然后调用识别就可以了:
client.basicGeneral(image,options)
输出后是一系列json格式的字符,显然我们还需要继续提取:

ending = result["words_result"]
找到key值,然后提取后边的列表。这个时候几个列表就出来了。

然后再遍历一下,就能把文字全提取出来了。

最后保存到word文档中,就可以了。
with open("text.doc","a") as fp: fp.write(text)
完整的代码如下(除去注释和空行,20行左右)
# 1.打开文件import osdirs = os.listdir(r'C:UsersitcastDesktopocr')print(dirs)for dir in dirs: filepath = f"C:UsersitcastDesktopocr{dir}" print(filepath) with open(f"C:UsersitcastDesktopocr{dir}","rb") as f: image = f.read()# 2. 接入百度智云文字识别服务# 从aip中导入AipOcr from aip import AipOcr#替换你的APP_ID,API_KEY,SECRET_KEY APP_ID = ' ' API_KEY = ' ' SECRET_KEY = ' ' # 新建一个AipOcr,并赋值给变量client client = AipOcr(APP_ID, API_KEY, SECRET_KEY) # 调用通用文字识别 # 如果有可选参数 # 创建字典options,并将可选参数detect_direction的值设置为"true" options = {"detect_direction":"true"} # 调用通用文字识别接口并把结果赋值给result result = client.basicAccurate(image, options) # 输出result # print(result) ending = result["words_result"] # print(ending) for word in ending: # print(word) text = word['words'] print(text) with open("text.doc","a") as fp: fp.write(text) print("写入完成")
关注我@秋语棠,带你学好玩的python编程。
本文《python实现图片文字识别(python自动识别图片文字)》由网赚联盟( wangzhuan.org.cn )整理或原创,感谢您的阅读。随机文章
站长导航友情链接交换
搜素引擎算法
关键词排名优化
网站内容优化
站长导航
搜素引擎算法
关键词排名优化
百度搜索“网赚联盟”即可找到本站,微信搜索“小小课堂网”关注小小课堂网公众号。网赚联盟( wangzhuan.org.cn )欢迎用户投稿,发布者:秋语棠,文章版权归作者所有,投稿文章不代表网赚联盟立场,中二少年发布为网赚联盟原创文章,转载请注明出处:https://wangzhuan.org.cn/974011.html

微信扫一扫
支付宝扫一扫