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 dict.get()和dict['key']的区别详解
Jun 30 Python
Python内置模块turtle绘图详解
Dec 09 Python
win8下python3.4安装和环境配置图文教程
Jul 31 Python
Python 多线程不加锁分块读取文件的方法
Dec 11 Python
详解Python 切片语法
Jun 10 Python
python集合是否可变总结
Jun 20 Python
Django的性能优化实现解析
Jul 30 Python
python twilio模块实现发送手机短信功能
Aug 02 Python
通过Python编写一个简单登录功能过程解析
Sep 04 Python
Python操作多维数组输出和矩阵运算示例
Nov 28 Python
python常用运维脚本实例小结
Feb 14 Python
Django实现whoosh搜索引擎使用jieba分词
Apr 08 Python
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
浅析Django接口版本控制
浅析Python实现DFA算法
解析目标检测之IoU
pycharm代码删除恢复的方法
Python max函数中key的用法及原理解析
You might like
便携利器 — TECSUN PL-365简评
2021/03/02 无线电
php 魔术函数使用说明
2010/02/21 PHP
用PHP实现读取和编写XML DOM代码
2010/04/07 PHP
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
关于js与php互相传值的介绍
2013/06/25 PHP
php源码分析之DZX1.5字符串截断函数cutstr用法
2015/06/17 PHP
php实现编辑和保存文件的方法
2015/07/20 PHP
PHP Imagick完美实现图片裁切、生成缩略图、添加水印
2016/02/22 PHP
PHP输出Excel PHPExcel的方法
2018/07/26 PHP
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
基于socket.io和node.js搭建即时通信系统
2014/07/30 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
28个常用JavaScript方法集锦
2015/01/14 Javascript
js插件YprogressBar实现漂亮的进度条效果
2015/04/20 Javascript
JS封装cookie操作函数实例(设置、读取、删除)
2015/11/17 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
基于canvasJS在PHP中制作动态图表
2020/05/30 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
vue.js实现输入框输入值内容实时响应变化示例
2018/07/07 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
如何通过Python实现标签云算法
2019/07/02 Python
Python读取配置文件(config.ini)以及写入配置文件
2020/04/08 Python
Django权限控制的使用
2021/01/07 Python
人力资源行政经理自我评价
2013/10/23 职场文书
学生会离职感言
2014/02/11 职场文书
《分一分》教学反思
2014/04/13 职场文书
2015年安全工作总结范文
2015/04/02 职场文书
付款证明模板
2015/06/19 职场文书
2016年“我们的节日·端午节”活动总结
2016/04/01 职场文书
Python机器学习算法之决策树算法的实现与优缺点
2021/05/13 Python
spring boot项目application.properties文件存放及使用介绍
2021/06/30 Java/Android
vue elementUI批量上传文件
2022/04/26 Vue.js
Android开发EditText禁止输入监听及InputFilter字符过滤
2022/06/10 Java/Android