-
Notifications
You must be signed in to change notification settings - Fork 15
/
Copy pathbenchmark_dataset.py
49 lines (42 loc) · 1.74 KB
/
benchmark_dataset.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
import os
import cv2
import numpy as np
from os.path import join
from .sr_dataset import SRDataset
class BenchmarkDataset(SRDataset):
name2dir = {'div2k': 'DIV2K_valid_HR', 'set5': 'Set5', 'set14': 'Set14',
'b100': 'B100', 'urban100': 'Urban100', 'manga109': 'Manga109'}
def __init__(self, opt, split, dataset_name):
super(BenchmarkDataset, self).__init__(opt, split, dataset_name)
if self.root == '':
rootlist = ['D:/Datasets/SR/SR',
'/data/SR']
for root in rootlist:
if os.path.isdir(root):
self.root = root
break
self.hr_root = join(self.root, 'HR/%s/x%d' % \
(self.name2dir[self.dataset_name], self.scale))
self.lr_root = join(self.root, 'LR/LRBI/%s/x%d' % \
(self.name2dir[self.dataset_name], self.scale))
if split == 'test':
self.HR_images, self.LR_images, self.names = self._scan()
self._getitem = self._getitem_test
self.num = self.len_data = len(self.names)
else:
raise ValueError
self.load_data()
def _scan(self):
fnames = []
list_hr = []
list_lr = []
for filename in os.listdir(self.hr_root):
if not self.imio.is_image(filename): continue
list_hr.append(join(self.hr_root, filename))
*fname, _, ext = filename.split('_') # e.g., 0801_HR_x2.png
fname = '_'.join(fname)
fnames.append(join(self.dataset_name, fname + '_SRBI_' + ext))
list_lr.append(join(self.lr_root, fname + '_LRBI_' + ext))
return list_hr, list_lr, fnames
if __name__ == '__main__':
pass