void copyFrameToImage(VideoFrameRef frame, DepthImage& image) { if (image.height() != frame.getHeight() || image.width() != frame.getWidth()) { image = DepthImage( DepthImage::Data( static_cast<const uint16_t*>(frame.getData()), static_cast<const uint16_t*>(frame.getData()) + frame.getWidth() * frame.getHeight()), frame.getWidth(), frame.getHeight()); } else { image.data(DepthImage::Data( static_cast<const uint16_t*>(frame.getData()), static_cast<const uint16_t*>(frame.getData()) + frame.getWidth() * frame.getHeight())); } }
TEST( Camera, givenDepthMapThenGenerateNormalMap ) { using namespace Eigen; Camera *cam = Camera::default_depth_camera();; TUMDataLoader tum{ "/mnt/hgfs/PhD/Kinect Raw Data/TUM/rgbd_dataset_freiburg1_xyz"}; // Load depth image Matrix4f pose; DepthImage * di = tum.next( pose ); Matrix<float, 3, Dynamic> vertices; Matrix<float, 3, Dynamic> normals; cam->depth_image_to_vertices_and_normals(di->data(), di->width(), di->height(), vertices, normals); save_normals_as_colour_png("/home/dave/Desktop/cam_test_normals_tum.png", di->width(), di->height(), normals); save_rendered_scene_as_png("/home/dave/Desktop/cam_test_render_tum.png", di->width(), di->height(), vertices, normals, *cam, Vector3f{10000, 10000, 1000}); delete di; delete cam; }