open3d::pipelines::integration::ScalableTSDFVolume 是 Open3D 提供的一个核心类,
用于实现大规模稠密 3D 重建。它基于 可扩展 TSDF(Truncated Signed Distance Function) 技术,
支持处理大范围场景而不会受到传统固定体素网格的空间限制。
open3d::pipelines::integration
TSDF(截断有符号距离函数)是一种体素表示方法,用于表达点到表面的有符号距离。 正值表示前方,负值表示在表面之后,截断机制限制了远离表面的值,提升了效率。 TSDF 在多帧深度图融合中表现出色,具有较强的抗噪性能。
auto tsdf_volume = open3d::pipelines::integration::ScalableTSDFVolume(
0.04, // voxel_length(体素边长)
0.1, // sdf_trunc(截断距离)
open3d::pipelines::integration::TSDFVolumeColorType::RGB8
);
将一帧 RGB-D 图像融合进 TSDF:
tsdf_volume->Integrate(rgbd_image, intrinsic, extrinsic);
rgbd_image:当前帧的 RGB-D 图像intrinsic:相机内参extrinsic:相机在世界坐标下的位姿矩阵从 TSDF 中提取三角网格模型:
auto mesh = tsdf_volume->ExtractTriangleMesh();
mesh->ComputeVertexNormals();
volume = o3d.pipelines.integration.ScalableTSDFVolume(
voxel_length=0.04,
sdf_trunc=0.1,
color_type=o3d.pipelines.integration.TSDFVolumeColorType.RGB8
)
volume.integrate(rgbd, intrinsic, extrinsic)
mesh = volume.extract_triangle_mesh()
ScalableTSDFVolume 是 Open3D 在 TSDF 融合领域的高效实现, 特别适合用于室内场景、机器人导航与 AR/VR 建模等需要大空间支持的 3D 重建任务。