def get_all_exr_from_names(color, direct, albedo, depth, normal, dx, dy, gt): sample = exr.read(color[0]) h, w, _ = sample.shape n = len(color) if use_gradients: ch = 16 else: ch = 10 input_buffer = np.zeros((n, h, w, ch), dtype=sample.dtype) ref_buffer = np.zeros((n, h, w, 3), dtype=sample.dtype) for i in range(n): if use_noisy_color: input_buffer[i, :, :, :3] = exr.read(color[i]) # noisy else: input_buffer[i, :, :, :3] = exr.read(color[i]) + exr.read(direct[i]) # pr + direct input_buffer[i, :, :, 3:6] = exr.read(albedo[i]) depth_3ch = exr.read(depth[i]) input_buffer[i, :, :, 6] = depth_3ch[:, :, 0] input_buffer[i, :, :, 7:10] = exr.read(normal[i]) if use_gradients: input_buffer[i, :, :, 10:13] = exr.read(dx[i]) input_buffer[i, :, :, 13:16] = exr.read(dy[i]) ref_buffer[i] = exr.read(gt[i]) return input_buffer, ref_buffer
def get_all_exr_from_names(tile, direct, noisy, albedo, depth, normal, dx, dy, gt): sample = exr.read(tile[0]) h, w, _ = sample.shape n = len(tile) input_buffer = np.zeros((n, h, w, 3 + 3 + 7 + 3 + 3), dtype=sample.dtype) ref_buffer = np.zeros((n, h, w, 3), dtype=sample.dtype) for i in range(n): input_buffer[i, :, :, :3] = exr.read(tile[i]) + exr.read( direct[i]) # pr + direct input_buffer[i, :, :, 3:6] = exr.read(noisy[i]) # noisy input_buffer[i, :, :, 6:9] = exr.read(albedo[i]) depth_3ch = exr.read(depth[i]) input_buffer[i, :, :, 9] = depth_3ch[:, :, 0] input_buffer[i, :, :, 10:13] = exr.read(normal[i]) input_buffer[i, :, :, 13:16] = exr.read(dx[i]) input_buffer[i, :, :, 16:19] = exr.read(dy[i]) ref_buffer[i] = exr.read(gt[i]) return input_buffer, ref_buffer
def get_exr_dataset(dataset_dir, suffix='*.exr'): dataset = [] files = os.listdir(dataset_dir) files = [fn for fn in glob.glob(os.path.join(dataset_dir, suffix))] for file in files: filename = os.path.join(dataset_dir, file) # print("Loading: ", filename) data = exr.read(filename) # data = np.clip(data, 0, 1) dataset.append(data[:, :, 0:3]) dataset = np.array(dataset) return dataset