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中暂存上传图片的方法
Feb 18 Python
使用Python简单的实现树莓派的WEB控制
Feb 18 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
PyCharm安装第三方库如Requests的图文教程
May 18 Python
python3.6使用pickle序列化class的方法
Oct 22 Python
python dataframe向下向上填充,fillna和ffill的方法
Nov 28 Python
python简单验证码识别的实现方法
May 10 Python
Python中的self用法详解
Aug 06 Python
Pytorch mask_select 函数的用法详解
Feb 18 Python
python编程进阶之异常处理用法实例分析
Feb 21 Python
Python退出时强制运行一段代码的实现方法
Apr 29 Python
教你用Python写一个植物大战僵尸小游戏
Apr 25 Python
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
浅析Django接口版本控制
浅析Python实现DFA算法
解析目标检测之IoU
pycharm代码删除恢复的方法
Python max函数中key的用法及原理解析
You might like
php zlib压缩和解压缩swf文件的代码
2008/12/30 PHP
解析PHP中一些可能会被忽略的问题
2013/06/21 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
php通过array_merge()函数合并两个数组的方法
2015/03/18 PHP
几个比较经典常用的jQuery小技巧
2010/03/01 Javascript
javascript JSON操作入门实例
2010/04/16 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
jquery实现div拖拽宽度示例代码
2013/07/31 Javascript
bootstrap输入框组代码分享
2016/06/07 Javascript
jQuery实现的简单百分比进度条效果示例
2016/08/01 Javascript
jQuery绑定事件的四种方式介绍
2016/10/31 Javascript
JavaScript之map reduce_动力节点Java学院整理
2017/06/29 Javascript
node.js支持多用户web终端实现及安全方案
2017/11/29 Javascript
JS写谷歌浏览器chrome的外挂实例
2018/01/11 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
angularjs http与后台交互的实现示例
2018/12/21 Javascript
微信小程序new Date()方法失效问题解决方法
2019/07/29 Javascript
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
[02:38]2018年度DOTA2最佳劣单位选手-完美盛典
2018/12/17 DOTA
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
用Python中的字典来处理索引统计的方法
2015/05/05 Python
python+opencv识别图片中的圆形
2020/03/25 Python
对pandas将dataframe中某列按照条件赋值的实例讲解
2018/11/29 Python
python微信公众号开发简单流程实现
2020/03/09 Python
python seaborn heatmap可视化相关性矩阵实例
2020/06/03 Python
浅析图片上传及canvas压缩的流程
2020/06/10 HTML / CSS
在求职信中如何凸显个人优势
2013/10/30 职场文书
应届毕业生如何写求职信
2014/02/16 职场文书
2014年大学宣传部工作总结
2014/12/19 职场文书
兵马俑的导游词
2015/02/02 职场文书
学校元旦晚会开场白
2015/05/29 职场文书
师范生教育见习总结
2015/06/23 职场文书
2017寒假社会实践心得体会范文
2016/01/14 职场文书