bundle_adjust op• 資料種類:points → keypoints
• 呼叫: import fullseye as fs; fs.ledger.project(points, rvec, t, K)(要直接呼叫實作,import bundle3d; bundle3d.project(points, rvec, t, K);從台帳取用則 ops3d.get("project"))
用相機 (rvec,t,K) 把 3D 點 (n,3) 投影到 2D (n,2)(透視除法)。
對所有點一併計算 X_cam = R(rvec) @ X + t、x = K @ X_cam、uv = x[:2] / x[2] (與 project_points 慣例相同)。rvec 是旋轉向量(軸 × 角 [rad],scipy 的 Rotation.from_rotvec),t 是 (3,) 平移,K 是 (3,3) 內部矩陣。回傳值為 (n,2) float, 第 0 行是 u(橫向、行方向),第 1 行是 v(縱向、列方向),單位依循 K,為像素。
注意(無驗證):不剔除相機後方或像平面上的點(Z_cam <= 0),直接做除法。Z_cam = 0 會因除以 0 得到 inf/NaN,負的 Z 會成為看似在影像內的虛假座標,因此可見性判定由呼叫端進行。也不驗證形狀(僅用 np.asarray 轉為 float)。bundle_adjust / mean_reprojection_error 的重投影殘差由本函式產生。
• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。
• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。
• bundle_adjust — py -3.11 examples_3d/bundle_adjust.py
keypoints 作為輸入)fuse_to_voxel · dlt_pose · pnp_ransac · reprojection_error
bundle_adjust)bundle_adjust · mean_reprojection_error
*Provenance: bundle3d.py — 3D 運算子登記表。本條目由 tools/opdocs.py md 自動產生(請勿手動編輯)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.