transform op• 数据种类:voxel → mesh
• 调用: import fullseye as fs; fs.ledger.voxel_to_mesh(vol, iso=0.5)(要直接调用实现,import match3d; match3d.voxel_to_mesh(vol, iso=0.5);从台账取用则 ops3d.get("voxel_to_mesh"))
• 经台账调用的返回值: fullseye.ledger.voxel_to_mesh(...) 只返回声明的 out 类型 mesh 的值(底层函数还会返回辅助信息)。需要被丢弃的部分时,使用 fullseye.ledger.voxel_to_mesh.raw(...),或直接调用 match3d.voxel_to_mesh。
voxel → mesh(marching cubes,skimage)。返回 (verts, faces, normals)。voxel→mesh 转换。
skimage.measure.marching_cubes(vol, level=iso) 的薄封装(不指定 spacing = 以 1 voxel 为单位)。verts (V,3) float 是 voxel index 坐标,各列为输入的轴顺序(vol 为 (D,H,W) 时即 (z,y,x))。faces (F,3) int 是指向 verts 的 index,normals (V,3) 是 skimage 由梯度给出的顶点法线。第 4 个返回值(values)被丢弃。
• iso: 等值面的水平。超出输入值域时 skimage 抛出 ValueError(如全 0 的
volume 用 iso=0.5)。计数密度传 0.5,SDF 传 0.0。
• 与边界相接的等值面保持开口(不在边缘闭合)。
• ★绕序朝内。直接传给 mesh_volume 时,即使是普通的实心形状也会得到负值(实测: 1000 voxel 的立方体为 -985.67)。只要体积的话用
abs(),要统一朝向就用 faces[:, ::-1] 重新绕序。
• skimage 在调用时 import(未安装则 ImportError)。
后续: 用 mesh_to_points 转点云,用 mesh_area / face_areas / mesh_volume / boundary_vertices / mesh_edge_stats 计测。
• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。
• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。
• mesh_smooth — py -3.11 examples_3d/mesh_smooth.py
mesh 作为输入)mesh_to_voxel · mesh_to_points · to_points · fuse_to_voxel · ambient_occlusion · cast_shadow · supersample_mesh · render_beauty
transform)points_to_voxel · gaussians_to_voxel · mesh_to_voxel · mesh_to_points · depth_to_points · voxel_to_mips · tsdf_from_depth · signed_distance_field
*Provenance: match3d.py — 3D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*
© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.