Skip to content

xr843/scripture-image-alignment

Repository files navigation

字图对照系统

华严经卷23 多版本字图对照 Web 系统,用于佛教古籍的版本对勘研究。

系统将 7 个藏经版本(丽增、思溪、福州、宫内厅、京都、嘉莲、金藏)的经页扫描图按字切割,与对勘文本逐字对齐,实现字图一一对应的可视化对照。

功能

  • 多版对照/visual)— 7 个版本逐字字图并排对比,异文自动高亮,支持在线编辑校正和 ZIP 导出
  • 单版字图/viewer/<版本>)— 单个版本的字图网格浏览,点击字符查看原始经页定位
  • 文字对比/comparison)— 纯文字多版本逐字对照表,快速浏览异文
  • 字图下载 — 导出 ZIP 包含自包含 HTML 对照表(图片 base64 内嵌)+ CSV + 编辑记录

项目结构

字图对照系统/
├── app.py                  # Flask 主应用(路由、API、下载)
├── config.py               # 版本配置(路径、页码范围、缩写映射)
├── requirements.txt        # Python 依赖
├── Dockerfile              # 容器化部署
├── src/                    # 核心模块
│   ├── ocr_parser.py       #   OCR JSON 解析,提取正文字符(过滤注音、侧注、中缝)
│   ├── char_mapper.py      #   对勘文本 ↔ OCR 字符的逐字映射(SequenceMatcher 对齐)
│   ├── image_utils.py      #   坐标缩放 + 批量字符裁切
│   ├── text_align.py       #   多版本文本对齐(以丽增为参考,双序列合并为对齐矩阵)
│   └── variant_table.py    #   异体字归一化映射表(提高对齐精度)
├── scripts/
│   └── preprocess.py       # 一键预处理(OCR提取 → 字符映射 → 批量裁切 → 多版本对齐)
├── templates/              # Jinja2 模板
│   ├── base.html           #   公共布局(导航栏)
│   ├── index.html          #   首页(版本概览 + 快速入口)
│   ├── visual.html         #   多版对照页(字图网格 + 编辑 + 下载)
│   ├── viewer.html         #   单版字图浏览器
│   └── comparison.html     #   文字对比页
├── static/
│   ├── css/style.css       # 全局样式
│   └── js/                 # 前端脚本
├── 华严经-卷23-7个版本/      # 原始数据:7个版本的经页扫描图 + OCR JSON
│   ├── 丽增/
│   ├── 思溪/
│   ├── 福州/
│   ├── 宫内厅/
│   ├── 京都/
│   ├── 嘉莲/
│   └── 金藏/
├── 华严经-卷23-对勘文本/      # 各版本对勘文本(手工校对的纯文字)
└── output/                  # 预处理产物(自动生成)
    ├── alignment.json       #   多版本对齐矩阵
    ├── char_map_*.json      #   各版本字符映射
    ├── crops/               #   裁切字图(按版本分目录)
    └── edits.json           #   用户编辑记录

快速开始

环境要求

  • Python 3.10+
  • 原始数据(经页扫描图 + OCR JSON + 对勘文本)

安装

pip install -r requirements.txt

预处理

首次运行需执行预处理,生成字符映射、裁切字图和对齐矩阵:

python scripts/preprocess.py

处理流程:OCR 解析 → 字符映射 → 批量裁切 → 多版本对齐

启动

python app.py

访问 http://localhost:5001

Docker 部署

docker build -t char-image-system .
docker run -p 5000:5000 char-image-system

数据处理流水线

经页扫描图 + OCR JSON        对勘文本(手工校对)
        │                          │
        ▼                          │
  ocr_parser.py                    │
  提取正文字符                      │
  (过滤注音/侧注/中缝)             │
        │                          │
        ▼                          ▼
              char_mapper.py
         SequenceMatcher 逐字对齐
                    │
         ┌──────────┼──────────┐
         ▼          ▼          ▼
    char_map     image_utils   text_align.py
    字符映射     批量裁切字图    多版本对齐矩阵
         │          │          │
         └──────────┼──────────┘
                    ▼
              output/ 目录
              供 Web 系统使用

版本信息

版本 缩写 页数 说明
丽增 lz 20 参考版本(对齐基准)
思溪 sx 38
福州 fz 24
宫内厅 gn 58
京都 jd 26
嘉莲 jl 106
金藏 zc 25

API

端点 方法 说明
/api/crop/<version>/<idx> GET 获取裁切字图
/api/page_image/<version>/<page> GET 获取经页原图
/api/alignment GET 获取对齐矩阵数据
/api/edit POST 保存字符编辑
/api/edit/undo POST 撤销编辑
/api/edits GET 查看所有编辑记录
/api/download GET 下载字图 ZIP 包

About

Multi-version Buddhist scripture image-text alignment tool — character-by-character comparison across 7 historical editions with OCR and sequence matching. Flask + Python.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors