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深入学习之装饰器
Aug 31 Python
Python装饰器原理与用法分析
Apr 30 Python
python实现简单tftp(基于udp协议)
Jul 30 Python
Python multiprocessing多进程原理与应用示例
Feb 28 Python
详解python中docx库的安装过程
Nov 08 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
python实现银行实战系统
Feb 26 Python
Django查询优化及ajax编码格式原理解析
Mar 25 Python
python如何判断IP地址合法性
Apr 05 Python
pyinstaller打包单文件时--uac-admin选项不起作用怎么办
Apr 15 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
python爬取天气数据的实例详解
Nov 20 Python
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
浅析Django接口版本控制
浅析Python实现DFA算法
解析目标检测之IoU
pycharm代码删除恢复的方法
Python max函数中key的用法及原理解析
You might like
PHP学习之数组的定义和填充
2011/04/17 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
PHP常量及变量区别原理详解
2020/08/14 PHP
js几个不错的函数 $$()
2006/10/09 Javascript
javascript中检测变量的类型的代码
2010/12/28 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
浅析offsetLeft,Left,clientLeft之间的区别
2013/11/30 Javascript
jQuery实现分章节锚点“回到顶部”动画特效代码
2015/10/23 Javascript
AngularJS实现全选反选功能
2015/12/08 Javascript
全面解析Bootstrap表单样式的使用
2016/09/09 Javascript
BootStrapValidator初使用教程详解
2017/02/10 Javascript
Jquery把获取到的input值转换成json
2017/05/15 jQuery
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
JS实现可视化音频效果的实例代码
2020/01/16 Javascript
python函数装饰器用法实例详解
2015/06/04 Python
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
Python多进程multiprocessing用法实例分析
2017/08/18 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python3中获取文件当前绝对路径的两种方法
2018/04/26 Python
配置 Pycharm 默认 Test runner 的图文教程
2018/11/30 Python
python实现在函数图像上添加文字和标注的方法
2019/07/08 Python
python判断两个序列的成员是否一样的实例代码
2020/03/01 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
Python列表嵌套常见坑点及解决方案
2020/09/30 Python
python 使用tkinter+you-get实现视频下载器
2020/11/17 Python
阿根廷首家户外用品制造商和经销商:Montagne
2018/02/12 全球购物
土木工程应届生求职信
2013/10/31 职场文书
厂长岗位职责
2014/02/19 职场文书
打架检讨书2000字
2014/02/22 职场文书
应届毕业生自荐书
2014/06/18 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
高中社区服务活动报告
2015/02/05 职场文书
匿名检举信范文
2015/03/02 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
2016新年感言
2015/08/03 职场文书