annotate_table_layout — ANNOTATE paper op

• 데이터 종류: text → table

• 호출: import fullseye as fs; fs.ledger.annotate_table_layout(text, xy, anchor='lt', font_size=13, font_path=None, pad=6, col_gap=None, row_gap=0, align='auto', header=False, bold=False, italic=False, line_spacing=1.15)(구현을 직접 호출하려면 import annotate; annotate.annotate_table_layout(text, xy, anchor='lt', font_size=13, font_path=None, pad=6, col_gap=None, row_gap=0, align='auto', header=False, bold=False, italic=False, line_spacing=1.15), 원장에서 가져오려면 opsannotate.get("annotate_table_layout"))

사용법

table(dict)을 반환한다: 탭으로 구분된 문자열을 표로 배치하는 열과 행의 위치.

행은 \n, 열은 \t로 나눈다. 열 폭은 지정된 크기의 실제 글꼴로 1 셀씩 잰 폭의 최댓값으로 정해진다 -- 글자 수로 세면 일본어와 영숫자에서반드시 어긋나므로, 재는 것 말고는 올바르게 할 방법이 없다.

Parameters

text : str

탭 구분. 모든 행의 열 수가 같아야 한다(다르면 ValueError).

xy : (x, y)

anchor로 가리키는 위치(x=col, y=row).

anchor : str

'lt','ct','rt','lm','cm','rm','lb','cb','rb'의 9가지.

pad : int

표의 안쪽 여백 [px].

col_gap : int or None

열 사이 [px]. None(기본값)이면 행 높이 ×0.6을 반올림하므로,

글꼴 크기를 바꾸면 간격도 함께 움직인다.

row_gap : int

행 사이에 더하는 값 [px] (0이면 줄 간격 그대로).

align : str or sequence

TABLE_ALIGNS 중 하나, 또는 열별 나열. "auto"

(기본값)는 그 열의 값이 모두 수로 보일 때만 오른쪽 정렬한다.

header=True이면 머리글 행은 판정에서 제외한다.

header : bool

참이면 1번째 행을 머리글로 굵게 하고, 아래에 괘선을 1개 긋는다.

bold, italic : bool or int

합성 글자체(_bold_px / _italic_tile). header의

굵게는 이것과 별개로, 머리글 행에만 걸린다.

Returns

dict

{"rect": (x,y,w,h), "ncols", "nrows", "col_w": [...], "col_x": [...], "row_y": [...], "row_h", "col_gap", "align": [...], "header", "rule_y": 머리글 괘선의 y(header가 거짓이면 None), "cells": [{"text","row","col","xy","width","bold"}]}.

col_x / row_y / cells[i]["xy"]는 모두 영상 좌표.

Raises

ValueError

열 수가 행마다 다름 / 비어 있음 / 알 수 없는 align anchor /

align의 길이가 열 수와 다름.

Examples

>>> import annotate

>>> lay = annotate.annotate_table_layout("이름\t값\nA\t1.5\nB\t22.25", (10, 10))

>>> lay["ncols"], lay["nrows"], lay["align"]

(2, 3, ['left', 'left'])

>>> lay2 = annotate.annotate_table_layout("이름\t값\nA\t1.5\nB\t22.25", (10, 10),

... header=True)

>>> lay2["align"] # 머리글을 빼면 2번째 열은 수뿐

['left', 'right']

자세한 사용 가이드

• figure_annotation 패밀리 가이드

배경 지식 가이드(이 연산자 앞에 있는 물리·규약)

• dataset_conventions — 학습 데이터셋 규약 지식 — COCO / YOLO / VOC와 외관 검사의 함정

참고(샘플 데이터·문헌)

• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.

• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.

• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.

실행 가능한 예제(이 연산자를 실제로 호출하는 검증된 샘플)

• annotate_paper_tour — py -3.11 examples/annotate_paper_tour.py

타입이 이어지는 다음 연산자(table 를 입력으로 받는 것)

—

같은 카테고리(paper)

annotate_leader_layout · annotate_leader · annotate_markers · annotate_legend · annotate_dimension_layout · annotate_dimension · annotate_angle_layout · annotate_angle


*Provenance: annotate.py — ANNOTATE 연산자 레지스트리. 이 op 노트는 tools/opdocs.py md 가 자동 생성합니다(직접 편집하지 마세요).*

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.