carve — 3D space_carving op

• Data kinds: images → voxel

• Call: import fullseye as fs; fs.ledger.carve(silhouettes: 'Sequence[np.ndarray]', Ks: 'Sequence[np.ndarray]', Rs: 'Sequence[np.ndarray]', ts: 'Sequence[np.ndarray]', bounds: 'Bounds', res: 'int') -> 'np.ndarray' (implementation को सीधे call करना हो तो import visualhull; visualhull.carve(silhouettes: 'Sequence[np.ndarray]', Ks: 'Sequence[np.ndarray]', Rs: 'Sequence[np.ndarray]', ts: 'Sequence[np.ndarray]', bounds: 'Bounds', res: 'int') -> 'np.ndarray', registry से लेना हो तो ops3d.get("carve"))

उपयोग

bounds को res^3 voxels में discretise करता है और वे voxels रखता है जो सभी silhouettes के अंदर project होते हैं (space carving)।

हर voxel centre को X_cam = R_m X + t_m से सभी cameras m में project करता है, और केवल वे voxels keep करता है जो depth>0, image के अंदर, और silhouettes[m] में foreground, इन सभी शर्तों को पूरा करते हैं (view cones का intersection)। silhouettes/cameras लंबाई M की lists हैं।

Parameters

silhouettes : list of (H, W) bool array हर camera का foreground mask (M)।

Ks, Rs, ts : list हर camera के intrinsic parameters, rotation और translation (हर एक M)।

bounds : ((xmin,xmax),(ymin,ymax),(zmin,zmax)) carve किया जाने वाला box क्षेत्र।

res : int हर axis पर voxel divisions की संख्या (कुल voxels = res^3)।

Returns

(res, res, res) bool ndarray occupied voxels। indexing='ij' में axes (x, y, z) हैं।

vox[i,j,k] का centre (xmin+(i+.5)dx, ymin+(j+.5)dy, zmin+(k+.5)dz) है।

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

• blender_interop — Blender के साथ उपयोग — shape बनाएँ, fullseye से मापें (सावधानियाँ: axes, units, ground truth)

संदर्भ (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 करते हैं)

• space_carving — py -3.11 examples_3d/space_carving.py

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

voxel_to_mips · voxel_to_mesh · signed_distance_field · to_points · sobel3d · hessian3d · curvature_maps · edt_jfa

इसी category के (space_carving)

visual_hull · synthesize_silhouette · carve_look_at


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

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