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搭建HTTP服务器和FTP服务器
Mar 09 Python
PyTorch线性回归和逻辑回归实战示例
May 22 Python
基于scrapy的redis安装和配置方法
Jun 13 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
Python实现统计英文文章词频的方法分析
Jan 28 Python
Python面向对象之类的封装操作示例
Jun 08 Python
python制作简单五子棋游戏
Jun 18 Python
Python上下文管理器用法及实例解析
Nov 11 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
Python中的流程控制详解
Feb 18 Python
Python爬虫之爬取二手房信息
Apr 27 Python
Python re.sub 反向引用的实现
Jul 07 Python
Python基于百度AI实现抓取表情包
Python道路车道线检测的实现
浅析Django接口版本控制
浅析Python实现DFA算法
解析目标检测之IoU
pycharm代码删除恢复的方法
Python max函数中key的用法及原理解析
You might like
linux php mysql数据库备份实现代码
2009/03/10 PHP
php中防止恶意刷新页面的代码小结
2012/10/31 PHP
PHP验证码生成原理和实现
2016/01/24 PHP
Zend Framework动作助手Json用法实例分析
2016/03/05 PHP
详解php用static方法的原因
2018/09/12 PHP
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
类似天猫商品详情随浏览器移动的示例代码
2014/02/27 Javascript
javascript编写实用的省市选择器
2015/02/12 Javascript
JavaScript实现数组随机排序的方法
2015/06/26 Javascript
jQuery基于$.ajax设置移动端click超时处理方法
2016/05/14 Javascript
jquery mobile 实现自定义confirm确认框效果的简单实例
2016/06/17 Javascript
AngularJS入门教程之过滤器详解
2016/08/19 Javascript
常用JS图片滚动(无缝、平滑、上下左右滚动)代码大全(推荐)
2016/12/20 Javascript
懒加载实现的分页&&网站footer自适应
2016/12/21 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
Vuex之理解Getters的用法实例
2017/04/19 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
微信小程序点击滚动到指定位置的实现
2020/05/22 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
[01:29]2017 DOTA2国际邀请赛官方英雄手办展示
2017/03/18 DOTA
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
Python赋值语句后逗号的作用分析
2015/06/08 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
Python使用pydub库对mp3与wav格式进行互转的方法
2019/01/10 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
Python中的self用法详解
2019/08/06 Python
降低python版本的操作方法
2020/09/11 Python
python 如何实现遗传算法
2020/09/22 Python
IE下实现类似CSS3 text-shadow文字阴影的几种方法
2011/05/11 HTML / CSS
Topman美国官网:英国著名的国际平价时尚男装品牌
2017/12/22 全球购物
异步传递消息系统的作用
2016/05/01 面试题
机械电子工程专业推荐信范文
2013/11/20 职场文书
公司租房协议书
2014/10/14 职场文书
个人求职自荐信范文
2015/03/06 职场文书
大学学生会主席竞选稿
2015/11/19 职场文书
2016优秀青年志愿者事迹材料
2016/02/25 职场文书