IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Python教程:利用百度API进行批量图片OCR识别 -> 正文阅读

[Python知识库]Python教程:利用百度API进行批量图片OCR识别

我最近有个需求,就是想把一批图片分别进行文字识别,网上的很多工具很多只能一张张识别,而且准确率还大打折扣。

这次利用python来开发一段脚本,最终的成果是这样的。

注意:text.doc 是新生成的

首先需要你需要把你的文件存在一个文件夹里,然后用os模块下的listdir方法来找到里边的文件,然后用一个for循环结合with open 方法打开并读取所有需要的文件,我存放在了桌面上C:\Users\itcast\Desktop\ocr

代码如下:

import os
dirs = os.listdir(r'C:\Users\itcast\Desktop\ocr')
print(dirs)
for dir in dirs:
    filepath = f"C:\\Users\\itcast\\Desktop\\ocr\\{dir}"
    print(filepath)
    with open(f"C:\\Users\\itcast\\Desktop\\ocr\\{dir}","rb") as f:
        image = f.read()

然后用第三方的应用,我这里用到的是百度API,也就是百度智能云里的应用,下方来说一下这个应该怎么使用:

首先你得有个百度账号,然后点击登陆。登陆后找到这个通用文字识别,如果你找不到的话,可以直接打开这个网址:

百度智能云-登录

?然后需要创建一个应用,名称和描述可以随便起,应用归属个人,其他选择默认即可。

然后点击应用列表,你就能看到刚刚创建应用的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)

完整的代码如下:

# 1.打开文件
import os
dirs = os.listdir(r'C:\Users\itcast\Desktop\ocr')
print(dirs)
for dir in dirs:
    filepath = f"C:\\Users\\itcast\\Desktop\\ocr\\{dir}"
    print(filepath)
    with open(f"C:\\Users\\itcast\\Desktop\\ocr\\{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中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:02:46  更:2022-02-16 13:04:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 23:40:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码