merge_dataset.py 1.76 KB
Newer Older
Nianchen Deng's avatar
Nianchen Deng committed
1
2
3
4
5
6
7
8
9
10
11
12
13
from shutil import copy
import sys
import os
import json
import argparse
from typing import Mapping

sys.path.append(os.path.abspath(sys.path[0] + '/../'))

from utils import misc


def copy_images(src_path, dst_path, n, offset=0):
Nianchen Deng's avatar
sync    
Nianchen Deng committed
14
    os.makedirs(os.path.dirname(dst_path), exist_ok=True)
Nianchen Deng's avatar
Nianchen Deng committed
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
    for i in range(n):
        copy(src_path % i, dst_path % (i + offset))


input_data_desc_paths = [
    '/home/dengnc/dvs/data/__new/barbershop_all/nerf_cvt.json',
    '/home/dengnc/dvs/data/__new/__demo/fvvdp/0816_3_barbershop_cvt.json',
    '/home/dengnc/dvs/data/__new/__demo/fvvdp/0816_1_barbershop_cvt.json',
]
output_data_desc_path = '/home/dengnc/dvs/data/__new/__demo/fvvdp/barbershop_3&1_nerf.json'
output_data_name = os.path.splitext(os.path.basename(output_data_desc_path))[0]
output_dir = os.path.dirname(output_data_desc_path)

with open(input_data_desc_paths[0], 'r') as fp:
    dataset_desc: Mapping = json.load(fp)

n_views = 0
# Copy images of the first dataset

for i in range(len(input_data_desc_paths)):
    if i == 0:
        input_desc = dataset_desc
    else:
        with open(input_data_desc_paths[i], 'r') as fp:
            input_desc: Mapping = json.load(fp)
        dataset_desc['view_centers'] += input_desc['view_centers']
        dataset_desc['view_rots'] += input_desc['view_rots']
    copy_images(
        os.path.join(os.path.dirname(input_data_desc_paths[i]), input_desc['view_file_pattern']),
        os.path.join(output_dir, output_data_name, 'view_%04d.png'),
        len(input_desc['view_centers']), n_views
    )
    n_views += len(input_desc['view_centers'])

dataset_desc['samples'] = [n_views]
dataset_desc['view_file_pattern'] = os.path.join(output_data_name, 'view_%04d.png')

with open(output_data_desc_path, 'w') as fp:
    json.dump(dataset_desc, fp, indent=4)