annotate3d_bbox — 3D annotate3d op

• 資料種類:image2d → image2d

• 呼叫: import fullseye as fs; fs.ledger.annotate3d_bbox(img, bounds, pose, K, depth=None, color='emphasis', width=1.5, occlusion_tol=0.01, scheme='okabe_ito')(要直接呼叫實作,import annotate3d; annotate3d.annotate3d_bbox(img, bounds, pose, K, depth=None, color='emphasis', width=1.5, occlusion_tol=0.01, scheme='okabe_ito');從台帳取用則 ops3d.get("annotate3d_bbox"))

用法

回傳影像(image2d):投影繪製軸對齊 3-D 盒 ((xmin,ymin,zmin),(xmax,ymax,zmax)) 的 12 條稜。

傳入 depth 時,把兩端都被遮擋的邊畫為虛線。

Raises

ValueError

bounds 的形狀 / min > max、角在相機後方。

步驟: 由 bounds 建構 8 個角 (x_i, y_j, z_k)(i, j, k ∈ {min, max}),一起投影(與 annotate3d_project 相同的慣例)。以 annotate._aa_polyline 繪製 12 條邊。邊的兩端都 hidden 則為虛線,只有一端則為實線。

參數:

• bounds: ((xmin, ymin, zmin), (xmax, ymax, zmax)) 的 (2, 3)(object 座標,有限,各軸 max >= min。允許 max == min 的塌縮箱)。點雲則用 points.min(0) / points.max(0),網格則由 V 建構。

• width: 線寬 [px],>= 0.5 的實數。color: 角色名或 RGB。

• depth: 前方距離影像(render3d.render_mesh 的 depth)。occlusion_tol: [0, 1)。

回傳值: 繪製後的新影像(float64 [0, 1],不修改輸入)。

報錯條件: bounds 不是 (2, 3)、非有限、存在 max < min 的軸 / 8 個角中任一個 z <= 1e-9(在相機平面上或後方。箱子包圍視點時無法繪製) / 位姿、K、depth 不正確。角超出影像不報錯(線會畫到框外,看起來被截斷)。

注意: 僅限軸對齊(沿 object 座標軸)的箱子。要繪製旋轉的箱子(smallest_box3 的 corners),請自己投影 8 個角(annotate3d_project),再以 2-D 的 annotate 線繪製連接。

參考(範例資料、文獻)

• 範例資料目錄(下載 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_measure


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

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