synthesize_silhouette — 3D space_carving op

• Data kinds: points → image2d

• Call: import fullseye as fs; fs.ledger.synthesize_silhouette(points, K, R, t, size: 'Tuple[int, int]', *, fill: 'bool' = True, dilate: 'int' = 1) -> 'np.ndarray' (implementation को सीधे call करना हो तो import visualhull; visualhull.synthesize_silhouette(points, K, R, t, size: 'Tuple[int, int]', *, fill: 'bool' = True, dilate: 'int' = 1) -> 'np.ndarray', registry से लेना हो तो ops3d.get("synthesize_silhouette"))

उपयोग

3-D point cloud को (K,R,t) camera पर project करता है और occupied pixels पर True वाली silhouette (H,W bool) लौटाता है।

GT बनाने के लिए। points (N,3) को X_cam = R X + t से project करता है, और जो pixel depth>0 के साथ image के अंदर गिरते हैं उन्हें True करता है। sparse point cloud में projected image में छेद रह जाते हैं, इसलिए default रूप से छेद भरे जाते हैं (fill, scipy.ndimage.binary_fill_holes) और अंदर से भरा हुआ foreground mask बनता है। फिर dilate pixel तक dilation करके "pixel अगर object को ज़रा भी छूता है तो foreground" वाले coverage अर्थ का silhouette बनाया जाता है — यह visual hull के recall (object voxel न छूटे) को discretisation error के बावजूद सुनिश्चित करने के लिए सुरक्षित पक्ष की rounding है।

Parameters

points : (N, 3) array_like world coordinates में point cloud (object की surface/अंदर के samples)।

K : (3, 3) intrinsic parameters।

R, t : (3, 3), (3,) world->camera rotation और translation।

size : (H, W) output image का size।

fill : bool projected image के छेद भरकर उसे solid बनाता है (default True)।

dilate : int coverage margin के रूप में dilation के pixel की संख्या (default 1, 0 पर बंद)।

Returns

(H, W) bool ndarray foreground True वाला silhouette।

पृष्ठभूमि 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 जुड़ता है (image2d को input के रूप में लेते हैं)

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

इसी category के (space_carving)

carve · visual_hull · 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.