paper op• 데이터 종류: image2d × mask → image2d
• 호출: import fullseye as fs; fs.ledger.annotate_outline(img, mask, label=None, color='emphasis', width=1.5, alpha=1.0, dash=None, font_size=12, label_offset=(0, 0), box_alpha=0.6, text_color=None, scheme='okabe_ito', font_path=None, layout=None)(구현을 직접 호출하려면 import annotate; annotate.annotate_outline(img, mask, label=None, color='emphasis', width=1.5, alpha=1.0, dash=None, font_size=12, label_offset=(0, 0), box_alpha=0.6, text_color=None, scheme='okabe_ito', font_path=None, layout=None), 원장에서 가져오려면 opsannotate.get("annotate_outline"))
이미지(image2d)를 돌려줍니다: 마스크의 윤곽을 (AA 된) 닫힌 폴리라인으로 그리고 무게중심에 글자를 놓습니다.
ValueError
mask의 형태가 영상과 다름, 참인 화소가 없음, alpha가 [0,1] 밖.
절차: layout이 없으면 annotate_outline_layout(mask)로 경계 루프(화소 변을 따르는 (x, y)의 닫힌 다각형, 외곽과 구멍 모두, 성분별)와 무게중심을구하고, 각 루프를 거리 피복률의 안티에일리어싱 꺾은선으로 얹는다. label이있으면 무게중심 + label_offset에 text_box(anchor="cm", 바탕판 포함)를 둔다.
• img: (H, W) / (H, W, 1|3|4), float64 복제, [0, 1].
• mask: (H, W), 영상과 같은 형태([row, col] 첨자). bool 이외는 > 0.5 로 이진화, 비유한은 ValueError. 참인 화소가 없으면 ValueError.
• width: 선 폭 [px], 0.5 이상. dash=(on, off) [px]로 파선(on > 0, off >= 0).
• alpha: [0, 1]. box_alpha는 문자 바탕판의 불투명도.
• label_offset: (dx, dy) [px]. 무게중심이 윤곽 밖에 떨어지는 형태(초승달 등)는여기서 옮긴다.
• layout: annotate_outline_layout의 반환값을 넘기면 재계산하지 않고 같은 배치를다른 그림에 재사용할 수 있다(contours / centroid를 읽음).
• 반환값: 입력과 같은 형태의 float64.
채우기로 나타내려면 overlay_mask, 여러 영역에 번호를 매기려면 annotate_markers.
• dataset_conventions — 학습 데이터셋 규약 지식 — COCO / YOLO / VOC와 외관 검사의 함정
• 샘플 데이터 카탈로그(DL URL / 라이선스) —— 2-D 는 skimage.data(BSD/public)+ 합성, 3-D 는 실데이터 소스(Stanford/PDS 등)의 DL URL.
• 연산자의 내력·참고문헌 —— 이 연산자 족의 바탕이 된 연구/기법의 출처.
• 알고리즘의 정전(저자·연도)과 용도는 위의 패밀리 사용 가이드에 적혀 있습니다.
• paper_figure — py -3.11 examples/paper_figure.py
• poc_rotation_invariance_audit — py -3.11 examples/poc_rotation_invariance_audit.py
image2d 를 입력으로 받는 것)text_box · arrow · leader_line · label_points · crosshair · legend_box · color_bar · scale_bar
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.