甘孜商城网站建设寿光建设银行网站
2026/6/20 10:09:13 网站建设 项目流程
甘孜商城网站建设,寿光建设银行网站,罗湖做网站联系电话,wordpress首页表单1. 实际应用场景描述 在个人理财、企业报销、税务管理等领域#xff0c;我们每天都会收到各种发票#xff08;纸质或电子图片#xff09;。 - 个人记账时#xff0c;需要手动输入发票上的金额、日期、商家名称#xff0c;费时费力。 - 企业财务需要批量处理大量发票…1. 实际应用场景描述在个人理财、企业报销、税务管理等领域我们每天都会收到各种发票纸质或电子图片。- 个人记账时需要手动输入发票上的金额、日期、商家名称费时费力。- 企业财务需要批量处理大量发票人工录入容易出错。- 纸质发票不易保存查找困难。如果有一个智能程序只需 拍摄发票照片就能自动识别关键信息并生成 电子记账表将极大提升效率减少人为错误。2. 痛点分析1. 手动录入繁琐每张发票都要逐字段输入。2. 易出错数字、日期格式不统一容易录错。3. 查找困难纸质发票不易分类存储。4. 批量处理难企业财务面对大量发票时效率低下。3. 核心逻辑讲解3.1 图像预处理- 对拍摄的发票照片进行灰度化、二值化、去噪等操作提高 OCR 识别率。- 可使用 OpenCV 进行边缘检测和倾斜校正。3.2 OCR 文字识别- 使用pytesseractTesseract OCR 的 Python 封装识别图片中的文字。- 支持中文识别需安装中文语言包。3.3 关键信息提取- 使用 规则匹配 或 正则表达式 提取金额如“123.45”、日期如“2024-12-31”、商家名称通常在发票顶部。- 可升级为 NLP 实体识别模型如 BERT提高准确率。3.4 数据存储- 将提取的信息存入 CSV 文件形成电子记账表。- 可扩展为 SQLite 或 Excel 文件。4. 模块化代码Python# invoice_ocr.pyimport cv2import pytesseractimport reimport csvfrom datetime import datetimeclass InvoiceOCR:def __init__(self, output_csvinvoice_records.csv):self.output_csv output_csv# 初始化 CSV 文件with open(self.output_csv, w, newline, encodingutf-8-sig) as f:writer csv.writer(f)writer.writerow([商家名称, 开票日期, 金额(元), 识别时间])def preprocess_image(self, image_path):图像预处理灰度化、二值化、去噪img cv2.imread(image_path)gray cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)_, thresh cv2.threshold(gray, 150, 255, cv2.THRESH_BINARY cv2.THRESH_OTSU)denoised cv2.medianBlur(thresh, 3)return denoiseddef ocr_image(self, image_path):OCR 识别文字processed_img self.preprocess_image(image_path)text pytesseract.image_to_string(processed_img, langchi_simeng)return textdef extract_info(self, text):提取商家名称、日期、金额# 商家名称假设在文本前几行lines text.split(\n)merchant lines[0].strip() if lines else # 日期匹配 YYYY-MM-DD 或 YYYY/MM/DDdate_pattern r\d{4}[-/]\d{1,2}[-/]\d{1,2}date_match re.search(date_pattern, text)date date_match.group() if date_match else # 金额匹配 123.45 或 123.45元amount_pattern r[¥]?\s*\d\.\d{2}\s*[元]?amount_match re.search(amount_pattern, text)amount amount_match.group().replace(, ).replace(¥, ).replace(元, ).strip() if amount_match else return merchant, date, amountdef save_to_csv(self, merchant, date, amount):保存到 CSVwith open(self.output_csv, a, newline, encodingutf-8-sig) as f:writer csv.writer(f)writer.writerow([merchant, date, amount, datetime.now().strftime(%Y-%m-%d %H:%M:%S)])def process_invoice(self, image_path):处理单张发票print(正在识别发票...)text self.ocr_image(image_path)print(识别文本\n, text)merchant, date, amount self.extract_info(text)print(f商家{merchant}, 日期{date}, 金额{amount})self.save_to_csv(merchant, date, amount)print(已保存到电子记账表。)def main():ocr InvoiceOCR()image_path input(请输入发票照片路径).strip()ocr.process_invoice(image_path)if __name__ __main__:main()5. README 文件# 发票自动识别与电子记账工具基于 Python OpenCV Tesseract OCR实现拍摄发票照片自动识别金额、日期、商家名称并生成电子记账表。## 功能- 发票照片预处理- OCR 文字识别支持中英文- 关键信息提取- 自动保存到 CSV 记账表## 安装依赖bashpip install opencv-python pytesseract 需安装 [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) 及中文语言包。## 使用bashpython invoice_ocr.py输入发票照片路径程序会自动识别并保存。## 示例输入照片路径后输出商家星巴克咖啡, 日期2024-12-31, 金额36.50已保存到电子记账表。6. 使用说明1. 安装 Tesseract OCR 及中文语言包。2. 安装 Python 依赖。3. 运行脚本输入发票照片路径。4. 程序会识别并保存信息到invoice_records.csv。5. 可用 Excel 打开 CSV 查看记账表。7. 核心知识点卡片知识点 说明OCR 技术 使用 Tesseract 将图像转为文本图像预处理 灰度化、二值化、去噪提高识别率正则表达式 提取金额、日期等结构化信息CSV 操作 将数据持久化存储可扩展性 可升级为 NLP 模型或接入财务系统8. 总结本项目展示了如何用 Python OpenCV Tesseract OCR 规则提取 快速实现一个 发票自动识别与电子记账工具解决了手动录入发票信息的痛点。- 优点自动化程度高、可批量处理、易于集成。- 未来可引入 深度学习 OCR 模型如 PaddleOCR、TrOCR和 NLP 实体识别提升复杂版式发票的识别准确率并支持导出 Excel、对接财务软件。- 适合作为 AI 方法与技术课程 的实践案例涵盖图像处理、文本识别、数据提取与存储全流程。如果你愿意可以升级为 PaddleOCR 版本并增加批量处理和 GUI 界面让它更适合实际财务工作。利用AI高效解决实际问题如果你觉得这个工具好用欢迎关注我

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询