Swift软件包 · v0.1.0

KLReadingOrder

根据坐标将OCR结果重新排列为水平或垂直阅读顺序。

KLReadingOrder接收文字、置信度、归一化矩形、页码和原始顺序,返回按阅读顺序分组的行,并保留接入应用提供的候选ID。软件包不执行OCR,也不分析文档含义。

支持平台
iOS 17+ · macOS 14+
开发工具
Swift 6.0+
许可证
MIT
第三方依赖

功能

  • 横排从上到下、行内从左到右
  • 竖排按列从右到左、列内从上到下
  • 每页独立自动判断方向
  • 根据字符尺寸自动调整分组容差

不包含的功能

软件包不执行OCR、旋转或透视校正,也不负责置信度筛选、语言识别、表格提取和语义分析。同一页的所有矩形必须使用相同的归一化坐标系。

通过SwiftPM安装

Package.swiftSwift
.package(url: "https://github.com/KoenLee1023/KLReadingOrder.git", from: "0.1.0")

使用方法

接入示例Swift
let engine = ReadingOrderEngine()
let lines = engine.reconstruct(
    candidates: observations,
    preferredDirection: .unknown
)

for line in lines {
    print(line.text)
}
ReadingOrderEngine

同步完成过滤、分页、方向判断、分组、排序和结果合并,不进行I/O。

ReadingOrderPolicy

提供可调整的几何阈值和默认值。

ReadingOrderLine

保存排序后的候选ID、合并矩形、拼接文字、平均置信度、页码和最终方向。

示例App

Reading Flow

横排从上到下、行内从左到右 · 竖排按列从右到左、列内从上到下

Layout Comparator

每页独立自动判断方向 · 根据字符尺寸自动调整分组容差