fullseye

visual_hull — 3D space_carving op

使い方

多視点シルエットの visual hull を voxel 占有として返す(:func:carve の別名)。

引数・返り値・例外は carve と完全に同じ(内部でそのまま carve を呼ぶだけ)。

返り値は (res,res,res) bool。indexing='ij' で軸は (x,y,z)、vox[i,j,k] の中心は (xmin+(i+.5)dx, ymin+(j+.5)dy, zmin+(k+.5)dz)。voxel が残る条件は、全カメラで「カメラ前方 (Z>0)・画像内・その画素がシルエット前景」を満たすこと(AND)。1 台でも外れれば削られる。

fail-closed: リスト長の不一致、カメラ 0 台、res <= 0、退化 bounds はすべて ValueError (0 台のときに「全 voxel 占有」を復元結果と偽って返さない)。

注意: visual hull は物体の上位集合で、どのカメラからも見えない凹みは埋まったまま残る。 シルエットは synthesize_silhouette のように 1 画素太らせた被覆マスクにしておくと、離散化 誤差で物体 voxel を削り落とす取りこぼしを避けられる。結果は voxel_to_mesh でメッシュ化、 esdf の占有入力にもそのまま使える。

背景知識ガイド(この op の手前にある物理・規約)

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(voxel を入力に取れる)

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

同カテゴリ(space_carving)

carve · synthesize_silhouette · carve_look_at


Provenance: visualhull.py — 3D operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

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