Skip to content

jphJack/ticket-ocr-elderly

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚄 火车票OCR识别与HTML生成工具

Python License Stars

🎯 专为老年人设计的火车票信息识别工具,自动识别火车票截图并生成大字体HTML页面

✨ 功能特点

  • 🔍 OCR自动识别 - 自动识别火车票截图中的所有关键信息
  • 📱 支持多种车次 - 支持G/D/C/Z/T/K/L等所有类型车次
  • 🏙️ 全国城市识别 - 内置100+城市名称,自动识别出发站和到达站
  • 👴 老年人友好 - 生成的HTML页面字体超大,适合老花眼患者阅读
  • 🎨 美观界面 - 现代化卡片式设计,信息一目了然
  • 📄 一键生成 - 上传图片即可生成HTML文件

📸 效果展示

输入:火车票截图

输入示例

输出:大字体HTML页面

输出示例

🛠️ 识别信息

信息类型 说明
车次 G/D/C/Z/T/K/L等所有类型
出发站 自动识别城市名
到达站 自动识别城市名
发车时间 日期 + 时间 + 星期
到达时间 自动计算(发车时间+历时)
历时 自动识别
乘客姓名 自动识别
座位信息 硬卧/软卧/硬座/软座/二等座/一等座/商务座
票价 自动识别
票类型 学生票/成人票

🚀 快速开始

环境要求

  • Python 3.8+
  • Windows 10/11 或 Linux 或 macOS

安装依赖

# 克隆项目 git clone https://github.com/jphJack/ticket-ocr-elderly.git cd ticket-ocr-elderly # 安装依赖 pip install -r requirements.txt

使用方法

# 基本用法 python src/main.py photo/your_ticket.jpg # 指定输出路径 python src/main.py photo/your_ticket.jpg -o output/my_ticket.html

运行结果

================================================== 火车票OCR识别与HTML生成工具 ================================================== [1/3] 正在进行OCR识别... 识别到 50 个文字区域 [2/3] 正在解析信息... 解析结果: - 车次: K1613次列车 - 出发站: 衡水 - 到达站: 徐州 - 发车时间: 2月26日 23:13 - 到达时间: 2月27日 06:53 - 乘客: 金鹏皓 - 座位: 硬卧 · 03车厢 · 05号上铺 - 票类型: 学生票 - 票价: ¥95.6 [3/3] 正在生成HTML... ================================================== ✅ 完成! HTML文件已生成: output/ticket_order.html ================================================== 

📁 项目结构

ticket-ocr-elderly/ ├── src/ # 源代码目录 │ ├── ocr_recognizer.py # OCR识别模块 │ ├── info_parser.py # 信息解析模块 │ ├── html_generator.py # HTML生成模块 │ └── main.py # 主程序入口 ├── templates/ # HTML模板目录 │ └── ticket_template.html # 火车票HTML模板 ├── photo/ # 输入图片目录 │ └── a1.jpg # 示例图片 ├── output/ # 输出目录 │ └── ticket_order.html # 生成的HTML文件 ├── docs/ # 文档目录 │ └── FAQ.md # 常见问题解答 ├── requirements.txt # 依赖列表 ├── LICENSE # 开源许可证 └── README.md # 项目说明 

🔧 技术栈

  • OCR引擎: RapidOCR - 基于PaddleOCR的轻量级OCR库
  • 模板引擎: Jinja2 - Python模板引擎
  • 图像处理: Pillow - Python图像处理库

📝 识别原理

1. OCR识别

使用RapidOCR引擎识别图片中的所有文字,返回文字内容和位置信息。

2. 信息解析

通过正则表达式和关键词匹配,从OCR结果中提取关键信息:

信息 识别方法
车次 正则匹配 [GDKTCZL]\d{1,4}
车站 城市名称列表匹配
时间 正则匹配 \d{2}:\d{2}
历时 正则匹配 (\d+)小时(\d+)分
日期 正则匹配 \d{4}\.\d{2}\.\d{2}
乘客名 正则匹配2-4个汉字
座位 正则匹配座位格式
票价 正则匹配 ¥(\d+\.?\d*)

3. HTML生成

使用Jinja2模板引擎,将解析的数据填充到HTML模板中,生成适合老年人阅读的大字体页面。

🤝 贡献指南

欢迎提交Issue和Pull Request!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 提交 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 详见 LICENSE 文件

🙏 致谢

📮 联系方式

如有问题或建议,欢迎提交 Issue


⭐ 如果这个项目对你有帮助,请给一个Star支持一下!

About

🚄 火车票OCR识别工具 - 自动识别火车票截图,生成适合老年人阅读的大字体HTML页面

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors