1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- /*The dataset is from
- *Computer Vision Group
- *TUM Department of Informatics Technical
- *University of Munich
- *https://vision.in.tum.de/data/datasets/rgbd-dataset/download#freiburg1_xyz
- */
- Scene scene;
- void setup() {
- size(640, 480, P3D);
- // default settings
- int frame_no = 0; // frame number
- float fov = PI / 3; // field of view
- int block_size = 8; // block size
- float normalizer = 5000.0f; // normalizer
- // initialize
- PointCloud point_cloud = new PointCloud();
- // synchronized rgb, depth and ground truth
- String head = "../data/";
- String[] rgb_depth_gt = loadStrings(head + "rgb_depth_groundtruth.txt");
- // read in rgb and depth image file paths as well as corresponding camera
- // posiiton and quaternion
- String[] info = split(rgb_depth_gt[frame_no], ' ');
- String rgb_path = head + info[1];
- String depth_path = head + info[3];
- float tx = float(info[7]), ty = float(info[8]),
- tz = float(info[9]); // real camera position
- float qx = float(info[10]), qy = float(info[11]), qz = float(info[12]),
- qw = float(info[13]); // quaternion
- // build transformer
- Transform trans =
- new Transform(tx, ty, tz, qx, qy, qz, qw, fov, width, height, normalizer);
- PImage rgb = loadImage(rgb_path);
- PImage depth = loadImage(depth_path);
- // generate point cloud
- point_cloud.generate(rgb, depth, trans);
- // initialize camera
- Camera camera = new Camera(fov, new PVector(0, 0, 0), new PVector(0, 0, 1),
- new PVector(0, 1, 0));
- // initialize motion field
- MotionField motion_field = new MotionField(block_size);
- // initialize scene
- scene = new Scene(camera, point_cloud, motion_field);
- }
- boolean inter = false;
- void draw() {
- background(0);
- // run camera dragged mouse to rotate camera
- // w: go forward
- // s: go backward
- // a: go left
- // d: go right
- // up arrow: go up
- // down arrow: go down
- //+ increase move speed
- //- decrease move speed
- // r: rotate the camera
- // b: reset to initial position
- scene.run(); // true: make interpolation; false: do not make
- // interpolation
- if (keyPressed && key == 'o') {
- inter = true;
- }
- scene.render(
- false); // true: turn on motion field; false: turn off motion field
- // save frame with no motion field
- scene.save("../data/frame/raw");
- background(0);
- scene.render(true);
- showGrids(scene.motion_field.block_size);
- // save frame with motion field
- scene.save("../data/frame/raw_mv");
- scene.saveMotionField("../data/frame/mv");
- }
|