annotate3d_arrow — 3D annotate3d op

• 資料種類:image2d → image2d

• 呼叫: import fullseye as fs; fs.ledger.annotate3d_arrow(img, p0, p1, pose, K, depth=None, color='emphasis', width=2, head_len=12.0, head_width=9.0, occlusion_tol=0.01, scheme='okabe_ito')(要直接呼叫實作,import annotate3d; annotate3d.annotate3d_arrow(img, p0, p1, pose, K, depth=None, color='emphasis', width=2, head_len=12.0, head_width=9.0, occlusion_tol=0.01, scheme='okabe_ito');從台帳取用則 ops3d.get("annotate3d_arrow"))

用法

回傳影像(image2d):畫出從 3-D p0 到 p1 的投影箭頭。

傳入 depth 且兩端都被遮擋時以虛線繪製(箭頭尖為半透明)。

Raises

ValueError

端點在相機後方 / 2 點投影到同一像素 / 兩端都在影像外、位姿或 K 不正確。

步驟: 把 img 複製為 float64 [0, 1]((H, W) / (H, W, C),C 為 1/3/4。非有限或為空則 ValueError),以與 annotate3d_project 相同的投影把 p0, p1 轉為像素,用 annotate.arrow 從 p0 的像素向 p1 的像素繪製箭頭。箭頭尖在 p1 一側。

參數:

• p0, p1: object 座標 (3,)(有限)。pose 為 4x4 object→camera 或 (R, t),K 為 3x3(朝 -Z 看的 render3d 慣例)。

• depth: (H, W) 前方距離影像(render3d.render_mesh 的 depth)。若與影像形狀不同則 ValueError。

• color: 角色名(如 "emphasis",由 scheme 的調色盤解析)或 RGB。

• width: 線寬 [px],1 以上的整數(1.5 會被拒絕)。

• head_len / head_width: 箭頭尖的長度、寬度 [px]。遮擋繪製時會縮小,使其不超過箭頭長度的 80 %。

• occlusion_tol: [0, 1)。

回傳值: 繪製後的新影像(float64,與輸入形狀相同。不修改輸入)。

報錯條件(依實作): 任一端點 z <= 1e-9(在相機平面上/後方)/ 2 點投影到同一像素(沿視線排列,長度小於 1e-9 px)/ 兩端都在影像外 (annotate.arrow 會拒絕,以免畫出貼在邊框上的錯誤線)/ 位姿或 K 不正確。只有一端在影像外時照常繪製(線朝框外畫出,看起來在邊框處被截斷)。

用途: 在 render3d.render_mesh 的影像上指示「這個頂點是這個」。若要以數值顯示長度用 annotate3d_measure,若要附加文字用 annotate3d_label。

參考(範例資料、文獻)

• 範例資料目錄(下載 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_label · annotate3d_scale_bar · annotate3d_axes · annotate3d_bbox · annotate3d_measure


*Provenance: annotate3d.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*

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