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 调用VC++的动态链接库(DLL)
Sep 06 Python
在Windows8上的搭建Python和Django环境
Jul 03 Python
基于Python实现一个简单的银行转账操作
Mar 06 Python
Python列表list操作符实例分析【标准类型操作符、切片、连接字符、列表解析、重复操作等】
Jul 24 Python
详解Python判定IP地址合法性的三种方法
Mar 06 Python
TensorFlow 滑动平均的示例代码
Jun 19 Python
Python实现蒙特卡洛算法小实验过程详解
Jul 12 Python
python函数声明和调用定义及原理详解
Dec 02 Python
使用Tkinter制作信息提示框
Feb 18 Python
Python semaphore evevt生产者消费者模型原理解析
Mar 18 Python
Python使用Paramiko控制liunx第三方库
May 20 Python
python能自学吗
Jun 18 Python
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
浅析Django接口版本控制
浅析Python实现DFA算法
解析目标检测之IoU
pycharm代码删除恢复的方法
Python max函数中key的用法及原理解析
You might like
盘点被央视点名过的日本动画电影 一部比一部强
2020/03/08 日漫
PHP错误抑制符(@)导致引用传参失败Bug的分析
2011/05/02 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
php定界符
2014/06/19 PHP
让焦点自动跳转
2006/07/01 Javascript
JS 类型转换常见方法小结
2010/05/31 Javascript
javascript中RegExp保留小数点后几位数的方法分享
2013/08/13 Javascript
YUI模块开发原理详解
2013/11/18 Javascript
使用js画图之画切线
2015/01/12 Javascript
Javascript数组操作函数总结
2015/02/05 Javascript
JS+CSS实现自动改变切换方向图片幻灯切换效果的方法
2015/03/02 Javascript
jQuery实现加入购物车飞入动画效果
2015/03/14 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
JavaScript遍历数组的三种方法map、forEach与filter实例详解
2019/02/27 Javascript
详解使用WebPack搭建React开发环境
2019/08/06 Javascript
JS操作字符串转数字的常见方法示例
2019/10/29 Javascript
javascript实现京东快递单号的查询效果
2020/11/30 Javascript
朴素贝叶斯算法的python实现方法
2014/11/18 Python
python将ip地址转换成整数的方法
2015/03/17 Python
基于Python log 的正确打开方式
2018/04/28 Python
Python基础教程之if判断,while循环,循环嵌套
2019/04/25 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
华为旗下电子商务平台:华为商城
2016/08/06 全球购物
英国玛莎百货美国官网:Marks & Spencer美国
2018/11/06 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
奥地利购买珠宝和手表网站:ELLA JUWELEN
2019/09/03 全球购物
斯福泰克软件测试面试题
2015/02/16 面试题
求职简历中个人的自我评价
2013/12/01 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
矫正人员思想汇报
2014/01/08 职场文书
专题组织生活会方案
2014/06/15 职场文书
应届大学生自荐书
2014/06/17 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
大学生团日活动总结
2015/05/06 职场文书
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android