warp_by_plane — 3D plane_sweep_stereo op

• Data kinds: image2d → image2d

• Call: import fullseye as fs; fs.ledger.warp_by_plane(img: 'np.ndarray', H: 'np.ndarray', order: 'int' = 1, cval: 'float' = nan) -> 'np.ndarray' (implementation को सीधे call करना हो तो import plane_sweep; plane_sweep.warp_by_plane(img: 'np.ndarray', H: 'np.ndarray', order: 'int' = 1, cval: 'float' = nan) -> 'np.ndarray', registry से लेना हो तो ops3d.get("warp_by_plane"))

उपयोग

homography H से img को inverse warp करता है। → out[y,x] = img(H·(x,y,1)) (bilinear)।

H output (ref) pixel → input (src) pixel का mapping है। field of view के बाहर cval (default NaN)।

हर output pixel (x=column, y=row) के लिए q = H @ (x, y, 1) और (sx, sy) = (q0/q2, q1/q2) निकालता है, और scipy.ndimage.map_coordinates से input image के (row sy, column sx) को interpolate करके भरता है (inverse warp होने से छेद नहीं बनते)। output का shape input जैसा ही (h,w) है। उसी module के plane_homography द्वारा लौटाया गया H (ref pixel → src pixel) सीधे देने पर "src को ref viewpoint पर लाई गई image" मिलती है।

• img: (H,W) का 2-D grayscale (float में बदला जाता है)। खाली या non-2-D हो तो ValueError।

• H: (3,3) के अलावा कुछ भी हो तो ValueError।

• order: interpolation order (default 1 = bilinear)। prefilter=False के साथ call होने के कारण, 2 या अधिक देने पर भी spline preprocessing छोड़ा गया सन्निकटन (approximation) मिलता है (smoothing की ओर झुका)।

• cval: input की सीमा के बाहर पड़ने वाले pixels, और |q2| < 1e-12 (अनंत की ओर जाने वाले pixels) में डाला जाने वाला मान। default NaN है, इसलिए आगे np.isfinite से "जिन pixels का correspondence नहीं मिला" उन्हें अलग किया जा सकता है।

plane_sweep_depth हर candidate depth के लिए इस function से src को warp करता है, और |I_ref - warp(I_src)| को photo-consistency cost बनाता है।

पृष्ठभूमि guides (इस op के पीछे की physics और conventions)

• depth_sensors — Depth sensors — ranging के सिद्धांत, असली devices के आँकड़े, dropouts कैसे दिखते हैं

संदर्भ (sample data, साहित्य)

• Sample data catalog (DL URL / license) — 2-D के लिए skimage.data (BSD/public) + synthetic, 3-D के लिए real data sources (Stanford/PDS आदि) के DL URL।

• Operators का स्रोत और संदर्भ — इस op family के मूल research/methods के स्रोत।

चलाए जा सकने वाले उदाहरण (verified samples जो सच में यह op call करते हैं)

• motion_scene — py -3.11 examples_3d/motion_scene.py

वे अगले ops जिनसे type जुड़ता है (image2d को input के रूप में लेते हैं)

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

इसी category के (plane_sweep_stereo)

plane_sweep_depth


*Provenance: plane_sweep.py — 3D operator registry. यह per-op note tools/opdocs.py md से अपने-आप generate होता है (हाथ से edit न करें)।*

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