| 80 | |
| 81 | |
| 82 | def save_hdf5_thread(out, filename): |
| 83 | os.makedirs(os.path.dirname(filename), exist_ok=True) |
| 84 | log.debug('Saving to %s', filename) |
| 85 | opts = dict(compression='lzf', fletcher32=True) |
| 86 | with h5py.File(filename, 'w') as f: |
| 87 | for i, frame in enumerate(out): |
| 88 | frame_grp = f.create_group('frame_%s' % str(i).zfill(10)) |
| 89 | for j, camera in enumerate(frame['cameras']): |
| 90 | camera_grp = frame_grp.create_group('camera_%s' % str(j).zfill(5)) |
| 91 | camera_grp.create_dataset('image', data=camera['image'], **opts) |
| 92 | camera_grp.create_dataset('depth', data=camera['depth'], **opts) |
| 93 | del camera['image_data'] |
| 94 | del camera['depth_data'] |
| 95 | del camera['image'] |
| 96 | del camera['depth'] |
| 97 | for k, v in camera.items(): |
| 98 | camera_grp.attrs[k] = v |
| 99 | del frame['cameras'] |
| 100 | for k, v in frame.items(): |
| 101 | frame_grp.attrs[k] = v |
| 102 | log.info('Saved to %s', filename) |
| 103 | |
| 104 | |
| 105 | def read_hdf5(filename, save_png_dir=None): |