poisson_lite — 3D reconstruct op

• 数据种类:points → mesh

• 调用: import fullseye as fs; fs.ledger.poisson_lite(points, size=64, sigma=1.0, iso=0.5, normals=None)(要直接调用实现,import recon3d; recon3d.poisson_lite(points, size=64, sigma=1.0, iso=0.5, normals=None);从台账取用则 ops3d.get("poisson_lite"))

用法

点群 (N,3) → (vertices(V,3), faces(F,3)) 的表面网格(screened Poisson 的轻量近似)。

将点云 splat 到 size³ 的 voxel 网格,构建等值面场,并用 marching cubes 生成三角网格。输出顶点与输入点云处于同一世界坐标(由 bbox 逆映射)。bounds 为点云 bbox(+ 依赖 σ 的 padding)。

2 种模式:

• normals is None:对占用(occupancy)做高斯平滑并归一化到 [0,1],用 binary_fill_holes 填充以 iso 二值化后的表面带内部,再次平滑,然后以 iso 提取单一外壳。占用(unsigned)场内外对称,平滑后薄壳的等值面会经过内坡和外坡两处, 变成同心双层壳。通过内部填充打破内外对称性,从闭合的表面采样中(相对网格 / σ 足够稠密时)可得到单层壳。开放曲面不会被填充,仍保持为薄面。过于稀疏 / σ 过小时,填充会从缝隙漏出而退化为双层壳(需要严格内外判定时请指定 normals)。

• 指定 normals:用带朝向点的 winding number 构建内外指示场并做高斯平滑,以 iso (默认 0.5)提取表面。即使只有表面采样,也能填满内部得到闭曲面。

Parameters

points : array_like (N,3)

输入点云。

size : int

voxel 网格的边长(默认 64)。越大越精细,但为 O(size³)。

sigma : float

高斯平滑的标准差(voxel 单位,默认 1.0)。自动预留 ⌈3σ⌉+2 voxel 的 padding。

iso : float

等值面水平。归一化场 [0,1] 上的值(默认 0.5)。

normals : array_like (N,3) or None

点法线。给出则为 winding number 模式,None 则为占用模式。

Returns

vertices : numpy.ndarray (V,3) float64

世界坐标中的顶点。

faces : numpy.ndarray (F,3) int64

三角形的顶点索引(引用 vertices)。

Raises

ValueError

点数不足(<4)、size 过小、占用/指示场过薄导致 iso 超出场的值域,等等。

背景知识指南(该算子背后的物理与约定)

• blender_interop — 与 Blender 配合使用 —— 在 Blender 中建形、用 fullseye 测量(坐标轴、单位、真值数据的陷阱)

参考(示例数据、文献)

• 示例数据目录(下载 URL / 许可证) —— 2-D 用 skimage.data(BSD/公有领域)加合成图,3-D 给出真实数据源(Stanford/PDS 等)的下载 URL。

• 算子来历与参考文献 —— 该算子族所依据的研究/方法出处。

可运行的示例(实际调用该算子并已验证的样例)

• poisson_surface_recon — py -3.11 examples_3d/poisson_surface_recon.py

类型可衔接的下一个算子(可接受 mesh 作为输入)

mesh_to_voxel · mesh_to_points · to_points · fuse_to_voxel · ambient_occlusion · cast_shadow · supersample_mesh · render_beauty

同类别(reconstruct)

alpha_shape_mesh · alpha_shape_boundary · estimate_alpha


*Provenance: recon3d.py — 3D 算子登记表。本条目由 tools/opdocs.py md 自动生成(请勿手工编辑)。*

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