synthesize_silhouette — 3D space_carving op

• 資料種類:points → image2d

• 呼叫: import fullseye as fs; fs.ledger.synthesize_silhouette(points, K, R, t, size: 'Tuple[int, int]', *, fill: 'bool' = True, dilate: 'int' = 1) -> 'np.ndarray'(要直接呼叫實作,import visualhull; visualhull.synthesize_silhouette(points, K, R, t, size: 'Tuple[int, int]', *, fill: 'bool' = True, dilate: 'int' = 1) -> 'np.ndarray';從台帳取用則 ops3d.get("synthesize_silhouette"))

用法

把 3-D 點群投影到 (K,R,t) 相機,回傳佔據像素為 True 的輪廓(H,W bool)。

用於產生 GT。將 points (N,3) 依 X_cam = R X + t 投影,把 depth>0 且落在影像內的像素設為 True。稀疏點雲的投影像會出現空洞,因此預設進行孔洞填補(fill, scipy.ndimage.binary_fill_holes),得到內部填實的前景遮罩。再僅依 dilate 個像素進行膨脹,使其成為「pixel 只要稍微接觸物體就算前景」這種覆蓋(coverage)意義上的輪廓 —— 這是為了在離散化誤差下也能保證 visual hull 的 recall(不漏掉物體 voxel )而採取的保守側捨入。

Parameters

points : (N, 3) array_like 世界座標下的點雲(物體表面/內部的取樣)。

K : (3, 3) 內部參數。

R, t : (3, 3), (3,) 世界->相機的旋轉、平移。

size : (H, W) 輸出影像尺寸。

fill : bool 填補投影像的空洞使其成為 solid(預設 True)。

dilate : int 作為覆蓋餘量進行膨脹的像素數(預設 1,0 表示停用)。

Returns

(H, W) bool ndarray 前景為 True 的輪廓。

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

• blender_interop — 與 Blender 搭配使用 —— 在 Blender 中建形、用 fullseye 量測(座標軸、單位、真值資料的陷阱)

參考(範例資料、文獻)

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

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

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

• space_carving — py -3.11 examples_3d/space_carving.py

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

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

同類別(space_carving)

carve · visual_hull · carve_look_at


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

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