python-使用百度AipOcr实现表格文字图片识别

注:本博客中的代码实现来自百度问答:https://jingyan.baidu.com/article/c1a3101ef9131c9e646deb5c.html

代码运行环境:win10  python3.7

需要aip库,使用pip install baidu-aip即可

(1)目的

通过百度AipOcr库,来实现识别图片中的表格,并输出问表格文件。

(2)实现

仿照百度问答:https://jingyan.baidu.com/article/c1a3101ef9131c9e646deb5c.html,实现了以下代码:

 1 # encoding: utf-8
 2 import os
 3 import requests
 4 import time
 5 import tkinter as tk
 6 from tkinter import filedialog
 7 from aip import AipOcr
 8
 9 # 定义常量,需要自己去百度智能云申请
10 APP_ID = ‘xxxxxxx‘
11 API_KEY = ‘xxxxxxxxxxxxx‘
12 SECRET_KEY = ‘xxxxxxxxxxxxxxxxxx‘
13 # 初始化AipFace对象
14 client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
15
16 # 读取图片
17 def get_file_content(filePath):
18     with open(filePath, ‘rb‘) as fp:
19         return fp.read()
20
21
22 #文件下载函数
23 def file_download(url, file_path):
24     r = requests.get(url)
25     with open(file_path, ‘wb‘) as f:
26         f.write(r.content)
27
28
29 if __name__ == "__main__":
30     root = tk.Tk()
31     root.withdraw()
32     data_dir = filedialog.askdirectory(title=‘请选择图片文件夹‘) + ‘/‘
33     result_dir = filedialog.askdirectory(title=‘请选择输出文件夹‘) + ‘/‘
34     num = 0
35     for name in os.listdir(data_dir):
36         print (‘{0} : {1} 正在处理:‘.format(num+1, name.split(‘.‘)[0]))
37         image = get_file_content(os.path.join(data_dir, name))
38         res = client.tableRecognitionAsync(image)
39         req_id = res[‘result‘][0][‘request_id‘]    #获取识别ID号
40
41         for count in range(1,10):    #OCR识别也需要一定时间,设定10秒内每隔1秒查询一次
42             res = client.getTableRecognitionResult(req_id)    #通过ID获取表格文件XLS地址
43             print(res[‘result‘][‘ret_msg‘])
44             if res[‘result‘][‘ret_msg‘] == ‘已完成‘:
45                 break    #云端处理完毕,成功获取表格文件下载地址,跳出循环
46             else:
47                 time.sleep(1)
48
49         url = res[‘result‘][‘result_data‘]
50         xls_name = name.split(‘.‘)[0] + ‘.xls‘
51         file_download(url, os.path.join(result_dir, xls_name))
52         num += 1
53         print (‘{0} : {1} 下载完成。‘.format(num, xls_name))
54         time.sleep(1)

(3)实现效果

识别的表格图片为:

实现的效果为(注:表格的格式人为调整过,但内容没人为修改):

可以看出,识别的精度还是很高的,只有“Fellow”识别为了“Fel1low”。

(4)其它

百度智能云应用创建链接:https://console.bce.baidu.com/ai/?_=1585935093810#/ai/ocr/app/list,创建了一个应用之后,就可以获得APP_ID、API_KEY、SECRET_KEY。

百度智能云文字识别接口说明:https://cloud.baidu.com/doc/OCR/s/3k3h7yeqa

原文地址:https://www.cnblogs.com/mrlayfolk/p/12630128.html

时间: 2024-10-30 03:28:32

python-使用百度AipOcr实现表格文字图片识别的相关文章

Springboot 结合百度IORC实现自定义模板图片识别

前言: 首先呢,最近再公司的项目当中遇到这样的一个问题,就是需要识别图片,提取图片当中的关键语句,而且识别的语句当然是人家手写体识别,翻来覆去一想,最终还是决定使用百度的OCR帮助我解决这一项需求 话不多说,我们直接开始 先去官网一探究竟 https://cloud.baidu.com/product/ocr 这里我们看到有很多相关的产品,大致都是图片文字识别,大致都相同 我们在这里选择自定义模板识别,这样跟符合我们逻辑业务的需求,让用户去手填一个单子,肯定会有一定的模板信息,这样识别的精度和准

接入百度大脑表格文字识别技术,快速降低信息电子化录入成本

使用表格文字识别技术,对个人.商品.公示内容等纸质信息登记表进行识别,快速实现表格内容的电子化,用于登记信息的结构化整理和统计,大幅度降低信息电子化工作的人力录入成本,提升信息管理的便捷性 一.平台接入 此步骤比较简单,不多阐述.可参照之前文档: https://ai.baidu.com/forum/topic/show/943162 二.分析接口文档 1.打开API文档页面,分析接口要求 https://ai.baidu.com/docs#/OCR-API/87932804 (1)接口描述 对

Python PIL创建文字图片

PIL库中包含了很多模块,恰当地利用这些模块可以做许多图像处理方面的工作. 下面是我用来生成字母或字符串测试图片而写的类及测试代码. 主要用到的模块: PIL.Image,PIL.ImageDraw,PIL.ImageFont PIL.Image用来生成一个空的图片,ImageDraw用来在空图片上画图及写字符,ImageFont则是创建需要使用到的字体 #-*- coding:gb2312 -*- from PIL import Image,ImageDraw,ImageFont,ImageO

Python人工智能之图片识别,Python3一行代码实现图片文字识别

1.Python人工智能之图片识别,Python3一行代码实现图片文字识别 2.tesseract-ocr安装包和中文语言包 注意: 原文地址:https://www.cnblogs.com/jycjy/p/8799295.html

python实现百度OCR图片识别

一.直接上代码 import base64 import requests class CodeDemo: def __init__(self,AK,SK,code_url,img_path): self.AK=AK self.SK=SK self.code_url=code_url self.img_path=img_path self.access_token=self.get_access_token() def get_access_token(self): token_host = '

C#百度图片识别API调用返回数据包解析

百度图片识别api接口 public static JObject GeneralBasic(string apikey,string secretkey,string path) { var client = new Baidu.Aip.Ocr.Ocr(apikey, secretkey); var image = File.ReadAllBytes(path); // 通用文字识别 var result = client.GeneralBasic(image, null); return r

Python快速开发分布式搜索引擎Scrapy精讲—scrapy模拟登陆和知乎倒立文字验证码识别

第一步.首先下载,大神者也的倒立文字验证码识别程序 下载地址:https://github.com/muchrooms/... 注意:此程序依赖以下模块包 Keras==2.0.1 Pillow==3.4.2 jupyter==1.0.0 matplotlib==1.5.3 numpy==1.12.1 scikit-learn==0.18.1 tensorflow==1.0.1 h5py==2.6.0 numpy-1.13.1+mkl 我们用豆瓣园来加速安以上依赖装如: pip install

[转]Python 解析 PDF 文本和表格的四大方法介绍

Python 解析 PDF 文本和表格的四大方法介绍 看到一个不错的知识文章,和大家分享一下: 很多文件为了安全都会存成 PDF 格式,比如有的论文.技术文档.书籍等等,程序读取这些文档内容带来了很多麻烦.Python 目前解析 PDF 的扩展包有很多,这里将对比介绍 PyPDF2.pdfplumber.pdfminer3k 以及 Camelot,告诉你哪个是好用的 PDF 解析工具. 本文使用的案例 PDF 文档下载链接: 链接: https://pan.baidu.com/s/1zH7vY4

<转载>使CSS文字图片div元素居中方法之水平居中的几个方法

文字居中,文字垂直居中水平居中,图片居中,图片水平居中垂直居中,块元素垂直居中?当我们在做前端开发是时候关于css居中的问题是很常见的.情 况有很多种,不同的情况又有不同的解决方式.水平居中的方式解决的时候相对来说通过css比较容易设置,垂直居中相对比较棘手. 先来说一下水平居中的不同情况与不同解决方法吧. 1文本,图片等行内元素的水平居中方法呢比较简单.直接给父元素设置一个text-align:centent属性就可以实现元素的水平居中了. 2 确定宽度的块级元素水平居中怎么设置呢?设置方法也