make_dataset.py
4.81 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
'''
현재 사용하지 않음.
'''
# from crop_feature import crop_feature
# import os
# from PIL import Image
# import numpy as np
# import torch
# from torch.utils.data.dataset import Dataset
# from torch.utils.data import TensorDataset, DataLoader
# from torchvision import transforms
# import cv2
# import glob
# import h5py
# import argparse
# parser = argparse.ArgumentParser(description="make Dataset")
# parser.add_argument("--dataset", type=str)
# parser.add_argument("--featureType", type=str)
# parser.add_argument("--scaleFactor", type=int)
# parser.add_argument("--batchSize", type=int, default=16)
# parser.add_argument("--threads", type=int, default=3)
# # dataset, feature_type, scale_factor, batch_size, num_workers
# def main():
# opt = parser.parse_args()
# dataset = opt.dataset
# feature_type = opt.featureType
# scale_factor = opt.scaleFactor
# batch_size = opt.batchSize
# num_workers = opt.threads
# print_message = True
# dataset = dataset+"/LR_2"
# image_path = os.path.join(dataset, feature_type)
# image_list = os.listdir(image_path)
# input = list()
# label = list()
# for image in image_list:
# origin_image = Image.open(os.path.join(image_path,image))
# label.append(np.array(origin_image).astype(float))
# image_cropped = crop_feature(os.path.join(image_path, image), feature_type, scale_factor, print_message)
# print_message = False
# # bicubic interpolation
# reconstructed_features = list()
# print("crop is done.")
# for crop in image_cropped:
# w, h = crop.size
# bicubic_interpolated_image = crop.resize((w//scale_factor, h//scale_factor), Image.BICUBIC)
# bicubic_interpolated_image = bicubic_interpolated_image.resize((w,h), Image.BICUBIC) # 다시 원래 크기로 키우기
# reconstructed_features.append(np.array(bicubic_interpolated_image).astype(float))
# input.append(concatFeatures(reconstructed_features, image, feature_type))
# print("concat is done.")
# if len(input) == len(label):
# save_h5(input, label, 'data/train_{}.h5'.format(feature_type))
# print("saved..")
# else:
# print(len(input), len(label), "이 다릅니다.")
# def concatFeatures(features, image_name, feature_type):
# features_0 = features[:16]
# features_1 = features[16:32]
# features_2 = features[32:48]
# features_3 = features[48:64]
# features_4 = features[64:80]
# features_5 = features[80:96]
# features_6 = features[96:112]
# features_7 = features[112:128]
# features_8 = features[128:144]
# features_9 = features[144:160]
# features_10 = features[160:176]
# features_11 = features[176:192]
# features_12 = features[192:208]
# features_13 = features[208:224]
# features_14 = features[224:240]
# features_15 = features[240:256]
# features_new = list()
# features_new.extend([
# concat_vertical(features_0),
# concat_vertical(features_1),
# concat_vertical(features_2),
# concat_vertical(features_3),
# concat_vertical(features_4),
# concat_vertical(features_5),
# concat_vertical(features_6),
# concat_vertical(features_7),
# concat_vertical(features_8),
# concat_vertical(features_9),
# concat_vertical(features_10),
# concat_vertical(features_11),
# concat_vertical(features_12),
# concat_vertical(features_13),
# concat_vertical(features_14),
# concat_vertical(features_15)
# ])
# final_concat_feature = concat_horizontal(features_new)
# save_path = "features/LR_2/" + feature_type + "/" + image_name
# if not os.path.exists("features/"):
# os.makedirs("features/")
# if not os.path.exists("features/LR_2/"):
# os.makedirs("features/LR_2/")
# if not os.path.exists("features/LR_2/" + feature_type):
# os.makedirs("features/LR_2/" + feature_type)
# cv2.imwrite(save_path, final_concat_feature)
# return np.array(final_concat_feature).astype(float)
# def concat_horizontal(feature):
# result = cv2.hconcat([feature[0], feature[1]])
# for i in range(2, len(feature)):
# result = cv2.hconcat([result, feature[i]])
# return result
# def concat_vertical(feature):
# result = cv2.vconcat([feature[0], feature[1]])
# for i in range(2, len(feature)):
# result = cv2.vconcat([result, feature[i]])
# return result
# def save_h5(sub_ip, sub_la, savepath):
# if not os.path.exists("data/"):
# os.makedirs("data/")
# path = os.path.join(os.getcwd(), savepath)
# with h5py.File(path, 'w') as hf:
# hf.create_dataset('input', data=sub_ip)
# hf.create_dataset('label', data=sub_la)
# if __name__ == "__main__":
# main()