Spaces:
Runtime error
Runtime error
import os | |
import pandas as pd | |
from skimage import io | |
import numpy as np | |
import json | |
import tqdm | |
# R, G, B | |
class GetImgMeanStd: | |
def __init__(self, data_file): | |
assert os.path.exists(data_file), 'train.csv dose not exist!' | |
self.data_info = pd.read_csv(data_file, index_col=0) | |
self.save_path_mean_std_info = 'generate_dep_info' | |
self.mean = None | |
self.std = None | |
def get_img_mean_std(self): | |
means = [] | |
stds = [] | |
bar = tqdm.tqdm(total=len(self.data_info)) | |
for row in self.data_info.iterrows(): | |
bar.update(1) | |
img_name = row[1]['img'] | |
# print(img_name) | |
img = io.imread(img_name) | |
img = img / 255. | |
assert img is not None, img_name + 'is not valid' | |
# height*width*channels, axis=0 is the first dim | |
mean = np.mean(np.mean(img, axis=0), axis=0) | |
means.append(mean) | |
std = np.std(np.std(img, axis=0), axis=0) | |
stds.append(std) | |
bar.close() | |
self.mean = np.mean(np.array(means), axis=0).tolist() | |
self.std = np.mean(np.array(stds), axis=0).tolist() | |
return {'mean': self.mean, 'std': self.std} | |
def write_mean_std_information(self): | |
info = self.get_img_mean_std() | |
writer = os.path.join(self.save_path_mean_std_info, 'mean_std_info_test.json') | |
with open(writer, 'w') as f_writer: | |
json.dump(info, f_writer) | |
print('\'PRIOR_MEAN\': %s\n\'PRIOR_STD\': %s\n' % (info['mean'], info['std'])) | |
if __name__ == '__main__': | |
data_file = r'generate_dep_info/train_data.csv' | |
getImgMeanStd = GetImgMeanStd(data_file) | |
getImgMeanStd.write_mean_std_information() | |