Python基于百度API识别并提取图片中文字


Posted in Python onJune 27, 2021

利用百度 AI 开发平台的 OCR 文字识别 API 识别并提取图片中的文字。首先需注册获取 API 调用的 ID 和 key,步骤如下:

打开百度AI开放平台,进入控制台中的文字识别应用(需要有百度账号)。

Python基于百度API识别并提取图片中文字

创建一个应用,并进入管理应用,记下 AppID, API Key, Secrect Key,调用 API需用到。

Python基于百度API识别并提取图片中文字

Python基于百度API识别并提取图片中文字

最后安装 python 的百度ai接口的的库

pip install baidu-aip

以下是代码实现,需将所有识别的图片放进名为 picture 的文件夹。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Tue Jun 12 09:37:38 2018
利用百度api实现图片文本识别
@author: XnCSD
"""

import glob
from os import path
import os
from aip import AipOcr
from PIL import Image

def convertimg(picfile, outdir):
    '''调整图片大小,对于过大的图片进行压缩
    picfile:    图片路径
    outdir:    图片输出路径
    '''
    img = Image.open(picfile)
    width, height = img.size
    while(width*height > 4000000):  # 该数值压缩后的图片大约 两百多k
        width = width // 2
        height = height // 2
    new_img=img.resize((width, height),Image.BILINEAR)
    new_img.save(path.join(outdir,os.path.basename(picfile)))
    
def baiduOCR(picfile, outfile):
    """利用百度api识别文本,并保存提取的文字
    picfile:    图片文件名
    outfile:    输出文件
    """
    filename = path.basename(picfile)
    
    APP_ID = '******' # 刚才获取的 ID,下同
    API_KEY = '******'
    SECRECT_KEY = '******'
    client = AipOcr(APP_ID, API_KEY, SECRECT_KEY)
    
    i = open(picfile, 'rb')
    img = i.read()
    print("正在识别图片:\t" + filename)
    message = client.basicGeneral(img)   # 通用文字识别,每天 50 000 次免费
    #message = client.basicAccurate(img)   # 通用文字高精度识别,每天 800 次免费
    print("识别成功!")
    i.close();
    
    with open(outfile, 'a+') as fo:
        fo.writelines("+" * 60 + '\n')
        fo.writelines("识别图片:\t" + filename + "\n" * 2)
        fo.writelines("文本内容:\n")
        # 输出文本内容
        for text in message.get('words_result'):
            fo.writelines(text.get('words') + '\n')
        fo.writelines('\n'*2)
    print("文本导出成功!")
    print()

if __name__ == "__main__":
    
    outfile = 'export.txt'
    outdir = 'tmp'
    if path.exists(outfile):
        os.remove(outfile)
    if not path.exists(outdir):
        os.mkdir(outdir)
    print("压缩过大的图片...")
    // 首先对过大的图片进行压缩,以提高识别速度,将压缩的图片保存与临时文件夹中
    for picfile in glob.glob("picture/*"):
        convertimg(picfile, outdir)
    print("图片识别...")
    for picfile in glob.glob("tmp/*"):
        baiduOCR(picfile, outfile)
        os.remove(picfile)
    print('图片文本提取结束!文本输出结果位于 %s 文件中。' % outfile)
    os.removedirs(outdir)

到此这篇关于Python基于百度API识别并提取图片中文字的文章就介绍到这了,更多相关Python百度API识别图片文字内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python的Django框架上部署ORM库的教程
Apr 20 Python
对Python的Django框架中的项目进行单元测试的方法
Apr 11 Python
python xlsxwriter库生成图表的应用示例
Mar 16 Python
python中sys.argv函数精简概括
Jul 08 Python
Python实现微信消息防撤回功能的实例代码
Apr 29 Python
Python使用MyQR制作专属动态彩色二维码功能
Jun 04 Python
Python 3 判断2个字典相同
Aug 06 Python
pygame实现俄罗斯方块游戏(对战篇1)
Oct 29 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
python 多线程中join()的作用
Oct 29 Python
python中判断数字是否为质数的实例讲解
Dec 06 Python
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
浅析Django接口版本控制
浅析Python实现DFA算法
解析目标检测之IoU
pycharm代码删除恢复的方法
Python max函数中key的用法及原理解析
You might like
深入PHP异步执行的详解
2013/06/03 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
完美解决phpdoc导出文档中@package的warning及Error的错误
2016/05/17 PHP
Laravel框架模型的创建及模型对数据操作示例
2019/05/07 PHP
在 Laravel 中动态隐藏 API 字段的方法
2019/10/25 PHP
jquery js 重置表单 reset()具体实现代码
2013/08/05 Javascript
javascript通过元素id和name直接取得元素的方法
2015/04/28 Javascript
jQuery()方法的第二个参数详解
2015/04/29 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
2015/09/14 Javascript
jquery.validate 自定义验证方法及validate相关参数
2016/01/18 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
2016/07/18 Javascript
AngularJS过滤器filter用法总结
2016/12/13 Javascript
vue 2.0路由之路由嵌套示例详解
2017/05/08 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
node.js 利用流实现读写同步,边读边写的方法
2017/09/11 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
原生js实现下拉框选择组件
2021/01/20 Javascript
centos系统升级python 2.7.3
2014/07/03 Python
PYTHON 中使用 GLOBAL引发的一系列问题
2016/10/12 Python
python实现超市扫码仪计费
2018/05/30 Python
python检测IP地址变化并触发事件
2018/12/26 Python
详解python和matlab的优势与区别
2019/06/28 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
Python进行统计建模
2020/08/10 Python
百度软件工程师职位
2013/02/14 面试题
建筑个人求职信范文
2014/01/25 职场文书
室内趣味活动方案
2014/08/24 职场文书
商场父亲节活动方案
2014/08/27 职场文书
股指期货心得体会
2014/09/10 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
网络销售员岗位职责
2015/04/11 职场文书
2015年四年级班主任工作总结
2015/10/22 职场文书
解读MySQL的客户端和服务端协议
2021/05/10 MySQL
MySQL查看表和清空表的常用命令总结
2021/05/26 MySQL