1. 主要参考这篇博客实现 https://blog.csdn.net/Wuzebiao2016/article/details/94426905
2. 首先就是将自己采集的RGBD图像的保存格式向Bundlefusion需要的格式对齐,如彩色图的命名格式是frame-000000.color.png,深度图的命名规则是frame-000000.depth.png.
3. 最重要的事情是如何将你准备的数据生成.sens文件
(1)将工程中原始的main函数注释掉,然后换成下面的main函数调用工程下的loadFromImages()和saveToFile()
int main()
{
ml::SensorData sd;
sd.loadFromImages("D:/Compressed/BundleFusionData", "frame-", "jpg");
sd.saveToFile("D:/Compressed/test.sens");
}
1. 主要参考这篇博客实现 https://blog.csdn.net/Wuzebiao2016/article/details/94426905
2. 首先就是将自己采集的RGBD图像的保存格式向Bundlefusion需要的格式对齐,如彩色图的命名格式是frame-000000.color.png,深度图的命名规则是frame-000000.depth.png.
上面这篇文章中也谈了很多关于压缩类型的问题,为了能让代码正常运行,生成可用的.sens文件,则需要对sensorData.h中的
#defineM_SENSOR_DATA_VERSION 4下面,将彩色图和深度图的压缩类型进行初始化,初始化制定类型。
m_colorCompressionType = TYPE_JPEG;// TYPE_PNG;
m_depthCompressionType = TYPE_ZLIB_USHORT;
虽然.sens中图像很多,但是重建的效果却很差,只有这一点点,也许跟我们的采集方式有关,我们是拿着kinect相机径直向前走的缘故,使用kinect采集图像数据的正确打开方式是,使相机朝着obstacles(墙面或者物体)扫描,因为Kinect相机的有效工作距离比较短一般在3-4米。