🎯 专为老年人设计的火车票信息识别工具,自动识别火车票截图并生成大字体HTML页面
- 🔍 OCR自动识别 - 自动识别火车票截图中的所有关键信息
- 📱 支持多种车次 - 支持G/D/C/Z/T/K/L等所有类型车次
- 🏙️ 全国城市识别 - 内置100+城市名称,自动识别出发站和到达站
- 👴 老年人友好 - 生成的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 # 项目说明 使用RapidOCR引擎识别图片中的所有文字,返回文字内容和位置信息。
通过正则表达式和关键词匹配,从OCR结果中提取关键信息:
| 信息 | 识别方法 |
|---|---|
| 车次 | 正则匹配 [GDKTCZL]\d{1,4} |
| 车站 | 城市名称列表匹配 |
| 时间 | 正则匹配 \d{2}:\d{2} |
| 历时 | 正则匹配 (\d+)小时(\d+)分 |
| 日期 | 正则匹配 \d{4}\.\d{2}\.\d{2} |
| 乘客名 | 正则匹配2-4个汉字 |
| 座位 | 正则匹配座位格式 |
| 票价 | 正则匹配 ¥(\d+\.?\d*) |
使用Jinja2模板引擎,将解析的数据填充到HTML模板中,生成适合老年人阅读的大字体页面。
欢迎提交Issue和Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交 Pull Request
本项目采用 MIT 许可证 - 详见 LICENSE 文件
如有问题或建议,欢迎提交 Issue
⭐ 如果这个项目对你有帮助,请给一个Star支持一下!

