Update : Eine Python-Version dieses Codes mit CPU-/GPU-Unterstützung finden Sie hier.
CUDA/C++-Code zum Zusammenführen mehrerer registrierter Tiefenkarten zu einem TSDF-Voxelvolumen (Projective Truncated Signed Distance Function), das dann zum Erstellen hochwertiger 3D-Oberflächennetze und Punktwolken verwendet werden kann. Getestet auf Ubuntu 14.04 und 16.04.
Suchen Sie eine ältere Version? Siehe hier.
tsdf2mesh.m
generiert jetzt ordnungsgemäß ein Netz in Kamerakoordinaten statt in Voxelkoordinaten.SaveVoxelGrid2SurfacePointCloud
im Democode wurde geändert, um die Erstellung von Punktwolkenvisualisierungen mit nur einem Tiefenrahmen zu ermöglichen. Diese Demo verschmilzt 50 registrierte Tiefenkarten aus dem Verzeichnis data/rgbd-frames
zu einem projektiven TSDF-Voxelvolumen und erstellt eine 3D-Oberflächenpunktwolke tsdf.ply
, die mit einem 3D-Viewer wie Meshlab visualisiert werden kann.
Hinweis : Eingabetiefenkarten sollten im Format 16-Bit-PNG, Tiefe in Millimetern gespeichert werden.
./compile.sh # compiles demo executable
./demo # 3D point cloud saved to tsdf.ply and voxel grid saved to tsdf.bin
[Optional] Diese Demo speichert auch das berechnete Voxelvolumen in einer Binärdatei tsdf.bin
. Führen Sie das folgende Skript in Matlab aus, um ein 3D-Oberflächennetz mesh.ply
zu erstellen, das mit Meshlab visualisiert werden kann.
tsdf2mesh ; % 3D mesh saved to mesh.ply
Dieses Repository ist Teil der 3DMatch Toolbox. Wenn Sie diesen Code für Ihre Arbeit nützlich finden, denken Sie bitte darüber nach, Folgendes zu zitieren:
@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}
}