layout optable → tableimport fullseye as fs; fs.ledger.text_lines(boxes, stroke_width=None, overlap_ratio: 'float' = 0.5, gap_ratio: 'float' = 3.0, width_ratio: 'float' = 3.0) (実装を直接呼ぶなら import textregion; textregion.text_lines(boxes, stroke_width=None, overlap_ratio: 'float' = 0.5, gap_ratio: 'float' = 3.0, width_ratio: 'float' = 3.0)、台帳から引くなら opstext.get("text_lines"))文字候補の矩形を行にまとめる(縦に重なり、横に近く、ストローク幅が近いものを繋ぐ)。
★規則の根拠(2026-09-27 実測): 候補は字画ごとの断片になる(横棒と ‘l’ では高さが 5 倍
違う)ので「高さが近い」を条件にすると 3 行が 30〜60 行に割れた。行の同一性は縦の
重なり(小さい方の高さの overlap_ratio 以上)で判定し、横の隙間は大きい方の高さの
gap_ratio 倍以内、ストローク幅は width_ratio 倍以内。
Returns dict: lines(M×4 の矩形)/ members(各行の候補 index のリスト)。
py -3.11 examples/poc_text_region_truth.pytable を入力に取れる)—
layout)—
Provenance: textregion.py — TEXT operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.