tsdf fusion
1.0.0
更新:可以在此处找到此代码的 Python 版本,同时支持 CPU/GPU。
CUDA/C++ 代码可将多个注册深度图融合到投影截断符号距离函数 (TSDF) 体素体积中,然后可用于创建高质量的 3D 表面网格和点云。在 Ubuntu 14.04 和 16.04 上测试。
正在寻找旧版本?请参阅此处。
tsdf2mesh.m
现在可以在相机坐标而不是体素坐标中正确生成网格。SaveVoxelGrid2SurfacePointCloud
的默认权重阈值,以允许仅使用一个深度帧创建点云可视化。该演示将目录data/rgbd-frames
中的 50 个注册深度图融合到投影 TSDF 体素体积中,并创建 3D 表面点云tsdf.ply
,可以使用 Meshlab 等 3D 查看器进行可视化。
注意:输入深度图应以以下格式保存:16 位 PNG,深度以毫米为单位。
./compile.sh # compiles demo executable
./demo # 3D point cloud saved to tsdf.ply and voxel grid saved to tsdf.bin
[可选] 此演示还将计算的体素体积保存到二进制文件tsdf.bin
中。在 Matlab 中运行以下脚本来创建 3D 表面网格mesh.ply
,可以使用 Meshlab 对其进行可视化。
tsdf2mesh ; % 3D mesh saved to mesh.ply
该存储库是 3DMatch Toolbox 的一部分。如果您发现此代码对您的工作有用,请考虑引用:
@inproceedings{zeng20163dmatch,
title={3DMatch: Learning Local Geometric Descriptors from RGB-D Reconstructions},
author={Zeng, Andy and Song, Shuran and Nie{ss}ner, Matthias and Fisher, Matthew and Xiao, Jianxiong and Funkhouser, Thomas},
booktitle={CVPR},
year={2017}
}