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编程-将Python程序转化为可执行程序[整理]
Apr 09 Python
python利用装饰器进行运算的实例分析
Aug 04 Python
浅谈五大Python Web框架
Mar 20 Python
Python for循环中的陷阱详解
Jul 13 Python
11个Python Pandas小技巧让你的工作更高效(附代码实例)
Apr 30 Python
树莓派采用socket方式文件传输(python)
Jun 22 Python
django-rest-framework 自定义swagger过程详解
Jul 18 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
在OpenCV里使用Camshift算法的实现
Nov 22 Python
django 利用Q对象与F对象进行查询的实现
May 15 Python
python用Tkinter做自己的中文代码编辑器
Sep 07 Python
python入门学习关于for else的特殊特性讲解
Nov 20 Python
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
浅析Django接口版本控制
浅析Python实现DFA算法
解析目标检测之IoU
pycharm代码删除恢复的方法
Python max函数中key的用法及原理解析
You might like
php MySQL与分页效率
2008/06/04 PHP
PHP 查找字符串常用函数介绍
2012/06/07 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
IE8 原生JSON支持
2009/04/13 Javascript
jQuery代码优化 遍历篇
2011/11/01 Javascript
详解强大的jQuery选择器之基本选择器、层次选择器
2012/02/07 Javascript
JavaScript 用Node.js写Shell脚本[译]
2012/09/20 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
JQuery实现左右滚动菜单特效
2015/09/28 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
图解Sublime Text3使用技巧
2015/12/21 Javascript
jQuery simplePage+AJAX plus分页插件用法实例
2016/02/17 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
nuxt+axios解决前后端分离SSR的示例代码
2017/10/24 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
node.js遍历目录的方法示例
2018/08/01 Javascript
Node.js fs模块(文件模块)创建、删除目录(文件)读取写入文件流的方法
2019/09/03 Javascript
微信小程序实现左侧滑动导航栏
2020/04/08 Javascript
微信小程序获取复选框全选反选选中的值(实例代码)
2019/12/17 Javascript
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
详解将Pandas中的DataFrame类型转换成Numpy中array类型的三种方法
2019/07/06 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
苹果香港官方商城:Apple香港
2016/09/14 全球购物
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
应聘美工求职信
2013/11/07 职场文书
中学生校园广播稿
2014/01/16 职场文书
蛋糕店的商业计划书范文
2014/01/27 职场文书
关于对大人不礼貌的检讨书
2014/09/29 职场文书
银行求职信模板
2015/03/20 职场文书
2015年九一八事变纪念活动实施方案
2015/05/06 职场文书
pdf论文中python画的图Type 3 fonts字体不兼容的解决方案
2021/04/24 Python
分析MySQL优化 index merge 后引起的死锁
2022/04/19 MySQL
Golang入门之计时器
2022/05/04 Golang
详解Spring Security如何在权限中使用通配符
2022/06/28 Java/Android