annotate3d_measure — 3D annotate3d op

• 데이터 종류: image2d → image2d

• 호출: import fullseye as fs; fs.ledger.annotate3d_measure(img, p0, p1, pose, K, unit='', depth=None, color='emphasis', width=1.5, tick=8.0, font_size=12, label_fmt='{:.3g}', box_alpha=0.6, text_color=None, occlusion_tol=0.01, scheme='okabe_ito', font_path=None)(구현을 직접 호출하려면 import annotate3d; annotate3d.annotate3d_measure(img, p0, p1, pose, K, unit='', depth=None, color='emphasis', width=1.5, tick=8.0, font_size=12, label_fmt='{:.3g}', box_alpha=0.6, text_color=None, occlusion_tol=0.01, scheme='okabe_ito', font_path=None), 원장에서 가져오려면 ops3d.get("annotate3d_measure"))

사용법

이미지(image2d)를 돌려줍니다: 3-D 두 점 사이 거리(메시 단위)를 투영한 선과 값으로 표시.

값은 |p1 - p0|(3-D, 닫힌 식). 화소상의 길이가 단축되어도 값은 변하지 않는다.

Raises

ValueError

2 점이 일치, 끝점이 카메라 뒤 / 영상 밖.

절차: dist = |p1 - p0|(object 좌표의 유클리드 거리, 단위는 메시 단위)를계산하고, p0, p1 을 투영(annotate3d_project 와 같은 관례). 양 끝 화소를잇는 선과 양 끝의 수직 눈금(길이 tick px), 양 끝에 반지름 3 px 의 점을 그리고, 선의중점에서 화면 위쪽으로 tick/2 + 4 px 떨어진 위치에 label_fmt.format(dist) + " " + unit 의 문자 상자를 둔다.

인수:

• p0, p1: object 좌표 (3,)(유한, 일치는 거부).

• unit: 문자열(비어 있으면 수치만). label_fmt: str.format 서식(기본값 "{:.3g}"). 단위 환산은 하지 않는다 — 메시가 mm 이면 그대로 mm.

• width [px] >= 0.5, tick [px] >= 0, font_size / box_alpha / text_color / font_path: 문자 상자의 외관.

• depth: 전방 거리 영상. 양 끝 모두 가려져 있으면 선을 파선으로, 가려진 끝점의 점을속이 빈 표시(ring)로 한다. occlusion_tol: [0, 1).

반환값: 그리기가 끝난 새 영상(float64 [0, 1]).

에러가 되는 조건: |p1 - p0| < 1e-12 / 어느 한 끝점이 z <= 1e-9 / 어느 한 끝점이 영상 밖(in_image 를 양 끝에 요구) / 자세·K· depth 가 부정 / 문자 상자가 들어가지 않음.

용도: fit_sphere3 의 지름, smallest_box3 의 변, 2 개의 특징점 사이의거리를 그림 위에 나타낸다. 값 자체는 그리기 전의 np.linalg.norm(p1 - p0) 과 같다.

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

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

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

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

• annotate3d_figure — py -3.11 examples_3d/annotate3d_figure.py

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

fuse_to_voxel · fit_poly_surface · eval_poly_surface · surface_form_error · background_flatten · polar_unwrap · fit_zernike · matcap_shade

같은 카테고리(annotate3d)

annotate3d_project · annotate3d_arrow · annotate3d_label · annotate3d_scale_bar · annotate3d_axes · annotate3d_bbox


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

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