fullseye

points_to_voxel — 3D transform op

使い方

点群 (N,3) → 密度 voxel (size³)。scatter_add で splat、任意で gaussian 平滑。

bounds=(lo,hi) を与えれば複数雲を同一格子に載せられる(=マッチング前提)。

手順: 各点を idx = floor((p − lo)/(hi − lo)·(size − 1)) で整数格子に落とし、その voxel に 1 を加算する(値 = その voxel に落ちた点の個数)。smooth > 0 なら σ=smooth(voxel 単位) の gaussian を 3 軸分離 conv で掛ける(半径 max(1, int(4σ + 0.5))、端は replicate)。 出力の軸順は 点の列の順そのまま(points[:, 0] → 軸 0)で、(depth,row,col) への 並べ替えはしない。

後段: match_points_ncc / signed_distance_field / voxel_to_mesh の入力に。

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

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

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

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

同カテゴリ(transform)

gaussians_to_voxel · mesh_to_voxel · mesh_to_points · depth_to_points · voxel_to_mips · voxel_to_mesh · tsdf_from_depth · signed_distance_field


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

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