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的Flask框架中配置多个子域名的方法讲解
Jun 07 Python
Python 实现简单的shell sed替换功能(实例讲解)
Sep 29 Python
Python探索之pLSA实现代码
Oct 25 Python
Python文件的读写和异常代码示例
Oct 31 Python
Python实现发送与接收邮件的方法详解
Mar 28 Python
Linux下python制作名片示例
Jul 20 Python
Python常用特殊方法实例总结
Mar 22 Python
使用python-opencv读取视频,计算视频总帧数及FPS的实现
Dec 10 Python
Django Channel实时推送与聊天的示例代码
Apr 30 Python
Python实现aes加密解密多种方法解析
May 15 Python
Numpy中np.max的用法及np.maximum区别
Nov 27 Python
pycharm配置python 设置pip安装源为豆瓣源
Feb 05 Python
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
浅析Django接口版本控制
浅析Python实现DFA算法
解析目标检测之IoU
pycharm代码删除恢复的方法
Python max函数中key的用法及原理解析
You might like
PHP获取QQ达人QQ信息的方法
2015/03/05 PHP
php实现在站点里面添加邮件发送的功能
2020/04/28 PHP
PHP7修改的函数
2021/03/09 PHP
js下通过prototype扩展实现indexOf的代码
2010/12/08 Javascript
jquery中dom操作和事件的实例学习 下拉框应用
2011/12/01 Javascript
如何阻止复制剪切和粘贴事件为了表单内容的安全
2013/05/23 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
jQuery自制提示框tooltip改进版
2016/08/01 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
Nodejs 搭建简单的Web服务器详解及实例
2016/11/30 NodeJs
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
使用vue-router beforEach实现判断用户登录跳转路由筛选功能
2018/06/25 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
layui 根据后台数据动态创建下拉框并同时默认选中的实例
2019/09/02 Javascript
原生js实现随机点餐效果
2019/12/10 Javascript
element-ui中按需引入的实现
2019/12/25 Javascript
ant design vue嵌套表格及表格内部编辑的用法说明
2020/10/28 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
python 实现调用子文件下的模块方法
2018/12/07 Python
python tkinter canvas 显示图片的示例
2019/06/13 Python
python将excel转换为csv的代码方法总结
2019/07/03 Python
django最快程序开发流程详解
2019/07/19 Python
Python3.6 + TensorFlow 安装配置图文教程(Windows 64 bit)
2020/02/24 Python
python + selenium 刷B站播放量的实例代码
2020/06/12 Python
python Yaml、Json、Dict之间的转化
2020/10/19 Python
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
优秀党支部事迹材料
2014/01/14 职场文书
表演方阵解说词
2014/02/08 职场文书
餐饮企业总经理岗位职责范文
2014/02/18 职场文书
运动会广播稿20字
2014/02/18 职场文书
委托书范本
2014/04/02 职场文书
五好文明家庭事迹材料
2014/12/20 职场文书
贷款收入证明格式
2015/06/24 职场文书
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL
Python OpenCV超详细讲解读取图像视频和网络摄像头
2022/04/02 Python