示例#1
0
    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
示例#2
0
    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
示例#3
0
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