Python识别发票图片

这篇博客介绍了如何通过Python步骤性地调用百度云的API来实现增值税发票的图像识别。首先,需要在百度云官网注册并创建应用以获取API Key和Secret Key。接着,利用这些密钥获取访问令牌。最后,使用这个令牌调用发票识别接口,读取本地图片文件并将其转为base64编码,将结果打印出来。整个过程涉及到了HTTP请求、JSON解析和图像处理等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.先去百度云官网注册登录,然后创建一个应用

2.创建应用后会有API KEY  和 Secret Key

 

 3.获取token,在接口中填入API Key 和Secret Key


import requests 


host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=API KEY&client_secret=Secret Key'
response = requests.get(host)
token=response.josn()['access_token']

4.调用百度云发票图片识别接口




import requests
import base64

'''
增值税发票识别
'''

request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/vat_invoice"
f = open('图片路径', 'rb')
img = base64.b64encode(f.read())

params = {"image":img}
access_token = token #获取的token
request_url = request_url + "?access_token=" + access_token
headers = {'content-type': 'application/x-www-form-urlencoded'}
response = requests.post(request_url, data=params, headers=headers)
print(response.josn())

### 使用 Python 实现发票图像识别和信息提取 为了实现发票图像识别并从中提取有用的信息,可以采用多种技术和库来完成这一目标。以下是具体的方法和技术栈: #### 1. OCR 技术的选择 对于光学字符识别 (OCR),可以选择使用 `CnOcr` 或者 Tesseract 的 Python 封装 PyOCR 来解析图片中的文字[^2]。 ```python from cnocr import CnOcr import io from PIL import Image as PI import pyocr # 初始化 OCR 工具 ocr = CnOcr() tool = pyocr.get_available_tools()[0] img_url = "pic/fp01.jpg" with open(img_url, 'rb') as f: a = f.read() new_img = PI.open(io.BytesIO(a)) new_img.show() ``` 这段代码展示了如何加载一张本地存储的发票图片,并通过 Pillow 库显示它。接着初始化了一个中文 OCR 对象以便后续调用其方法来进行文本检测与识别操作。 #### 2. 提取 HTML 结构化数据 如果需要进一步处理从网页上抓取到含有表格形式展示的数据,则 BeautifulSoup4 是一个非常有用的工具;不过,在当前场景下主要是针对静态图片文件做分析工作,因此主要依赖于上述提到过的两个核心组件即可满足需求[^3]。 #### 3. 处理特定区域内的子图 有时仅需关注某些固定位置上的字段值(比如金额),此时可以通过裁剪原图获取感兴趣的部分再执行 OCR 流程提高效率及准确性[^4]。 ```python def crop_image(image_path, coordinates): """Crop an image based on given coordinate.""" from PIL import Image with Image.open(image_path) as im: cropped_im = im.crop(coordinates) return cropped_im cropped_area = crop_image('path_to_invoice', (left, upper, right, lower)) text_from_cropped_area = ocr.ocr_for_single_line(cropped_area) print(f'Text extracted: {text_from_cropped_area}') ``` 此函数接受原始路径以及四个参数定义矩形框的位置,返回经过切割后的对象供下一步骤继续利用。 综上所述,结合以上技术手段能够有效地构建一套完整的解决方案用于自动化的发票扫描录入系统开发当中去。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值