Python结合OpenCV与百度OCR实现发票信息自动提取

Mia
Mia
发布时间:2026-10-15| 7人浏览过
原创

本文介绍如何使用Python的OpenCV库进行图像局部截取,并结合百度AI开放平台的文字识别API,实现从收据或发票图片中自动提取时间、商家、商品、价格及单号等关键信息。通过代码示例展示图像预处理、API调用及Pandas数据导出至Excel的完整流程,旨在提升财务或行政工作的数据处理效率。

一、简介

  • 该功能的核心目标是自动化提取收据或发票上的关键数据,以机器替代人工操作,从而显著提升工作效率。
  • 技术实现路径主要依赖cv2模块对目标区域进行精准截取,随后调用百度提供的API文字识别接口完成信息转换。

二、代码实现

首先导入必要的库,包括用于图像处理的cv2模块以及百度AI的API接口库。


import cv2
from aip import AipOcr

# 读取图片,利用imshow显示图片
pic = cv2.imread(r'Y:\cut\img1.png')
pic = cv2.resize(pic,None,fx = 0.5, fy = 0.5)
cv2.imshow('img',pic)
cv2.waitKey(0)

接着执行图片截取操作,获取所需的关键信息字段,具体包括以下五项内容:

  • 时间Time
  • 商家business
  • 商品goods
  • 价格money
  • 单号num

# 删除不必要的部分
img = pic[210:500, 100:580]

# 截取各部分的文字
time = pic[400:430, 100:580]
business = pic[370:400, 100:580]
goods = pic[350:380, 100:580]
money = pic[210:300, 100:580]
num = pic[460:500, 100:580]
# 查看截取的部分是否合适

gener_name = ['time','business','goods','money','num']
excel_data = {}
pd_columns = ["a","b","c","d","e"] # 标题




定义一个函数,将截取处理后的图片保存至指定文件夹中。


def shotcut_image(args):
    for index in gener:
        cv2.imwrite('image/{}.png'.format(args), img)

调用百度API接口,对保存的图片执行文字识别操作。


# 导入api
AppID = '24177719'
API_Key = 'p8skmRYfHGoVGR4UU03Q5jiM'
Secret_Key = 'dyM0tzSILBZu9CFqZ7IkjWwECGaws4xo'

cilent = AipOcr(AppID,API_Key,Secret_Key)

def get_words(img_name):
    with open('image/{}.png'.format(img_name), 'rb') as f:
        result = cilent.basicAccurate(f.read())
        return result

最后,将识别到的信息转换为DataFrame格式,并利用pandas库的to_excel功能,将数据导出保存至Excel文件中。


def convert_to_dataframe(words):
    # 构建dataframe
    result = words['words_result']
    for word in result:
        excel_data.setdefault('a', []).append(word['words'])

# 将所有words读取后,取出语句存入excel
def convert_to_excel():
    frame = DataFrame(excel_data, columns=pd_columns)
    # todo 表头需要额外处理,这里指定不设置表头
    frame.to_excel('out.xls',index=False, header=False)

至此,关于使用Python实现自动提取并收集信息的功能介绍完毕。如需了解更多相关Python自动提取与收集信息的内容,建议搜索本站历史文章或继续阅读后续相关文章,感谢大家的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。