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,閉合式)。即使像素上的長度被縮短,值也不變。
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) 相同。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 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 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.