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中的字符串知识点
Apr 14 Python
Python中设置变量访问权限的方法
Apr 27 Python
Python实现的单向循环链表功能示例
Nov 10 Python
Python对切片命名的实现方法
Oct 16 Python
解决Python获取字典dict中不存在的值时出错问题
Oct 17 Python
PyCharm设置护眼背景色的方法
Oct 29 Python
python统计中文字符数量的两种方法
Jan 31 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
Django之路由层的实现
Sep 09 Python
pandas中read_csv的缺失值处理方式
Dec 19 Python
Python参数传递对象的引用原理解析
May 22 Python
Python 统计序列中元素的出现频度
Apr 26 Python
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
浅析Django接口版本控制
浅析Python实现DFA算法
解析目标检测之IoU
pycharm代码删除恢复的方法
Python max函数中key的用法及原理解析
You might like
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
基于PHP的cURL快速入门教程 (小偷采集程序)
2011/06/02 PHP
php数据库配置文件一般做法分享
2012/07/07 PHP
使用Zttp简化Guzzle 调用
2017/07/02 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
Javascript的构造函数和constructor属性
2010/01/09 Javascript
JS求平均值的小例子
2013/11/29 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
JS中的三个循环小结
2017/06/20 Javascript
安装vue-cli报错 -4058 的解决方法
2017/10/19 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
2018/09/27 Javascript
JS中getElementsByClassName与classList兼容性问题解决方案分析
2019/08/07 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
js利用拖放实现添加删除
2020/08/27 Javascript
Vue +WebSocket + WaveSurferJS 实现H5聊天对话交互的实例
2020/11/18 Vue.js
python写的一个文本编辑器
2014/01/23 Python
python实现得到一个给定类的虚函数
2014/09/28 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
Django基础知识与基本应用入门教程
2018/07/20 Python
Django中的ajax请求
2018/10/19 Python
python实现随机漫步方法和原理
2019/06/10 Python
基于python检查矩阵计算结果
2020/05/21 Python
python实现学生信息管理系统源码
2021/02/22 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
Cult Gaia官网:美国生活方式品牌
2019/08/16 全球购物
农村党支部先进事迹
2014/01/14 职场文书
班主任新年寄语
2014/04/04 职场文书
安全生产目标管理责任书
2014/07/25 职场文书
《鸟的天堂》教学反思
2016/02/19 职场文书
Python+OpenCV实现图片中的圆形检测
2022/04/07 Python
win10清理dns缓存
2022/04/19 数码科技