warp_by_plane — 3D plane_sweep_stereo op

• 資料種類:image2d → image2d

• 呼叫: import fullseye as fs; fs.ledger.warp_by_plane(img: 'np.ndarray', H: 'np.ndarray', order: 'int' = 1, cval: 'float' = nan) -> 'np.ndarray'(要直接呼叫實作,import plane_sweep; plane_sweep.warp_by_plane(img: 'np.ndarray', H: 'np.ndarray', order: 'int' = 1, cval: 'float' = nan) -> 'np.ndarray';從台帳取用則 ops3d.get("warp_by_plane"))

用法

用單應 H 對 img 做逆向 warp。→ out[y,x] = img(H·(x,y,1))(bilinear)。

H 是輸出(ref)像素 → 輸入(src)像素的映射。視野外為 cval(預設 NaN)。

對每個輸出像素 (x=行, y=列) 求 q = H @ (x, y, 1)、(sx, sy) = (q0/q2, q1/q2),以 scipy.ndimage.map_coordinates 對輸入影像的 (列 sy, 行 sx) 內插填充(因為是逆向扭曲,不會出現空洞)。輸出形狀與輸入相同,為 (h,w)。將同一模組的 plane_homography 回傳的 H (ref 像素 → src 像素)直接傳入,即得到「把 src 帶到 ref 視點的影像」。

• img:(H,W) 的 2-D 灰階(轉換為 float)。空、非 2-D 時 ValueError。

• H:非 (3,3) 時 ValueError。

• order:內插階數(預設 1 = bilinear)。由於以 prefilter=False 呼叫,即使指定 2 以上,也是省略樣條前處理的近似(偏向平滑)。

• cval:映射到輸入範圍外的像素,以及 |q2| < 1e-12(飛向無窮遠的像素)所填入的值。預設為 NaN,因此後段可以用 np.isfinite 區分「未能取得對應的像素」。

plane_sweep_depth 對每個候選深度以本函式扭曲 src,並以 |I_ref - warp(I_src)| 作為 photo-consistency 成本。

背景知識指南(該運算子背後的物理與規範)

• depth_sensors — 深度感測器知識 —— 測距原理、實機數值、缺測的表現

參考(範例資料、文獻)

• 範例資料目錄(下載 URL / 授權) —— 2-D 用 skimage.data(BSD/公有領域)加合成圖,3-D 給出真實資料源(Stanford/PDS 等)的下載 URL。

• 運算子來歷與參考文獻 —— 該運算子族所依據的研究/方法出處。

可執行的範例(實際呼叫該運算子並已驗證的樣例)

• motion_scene — py -3.11 examples_3d/motion_scene.py

型別可銜接的下一個運算子(可接受 image2d 作為輸入)

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

同類別(plane_sweep_stereo)

plane_sweep_depth


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

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