|
import os |
|
import numpy as np |
|
from sklearn.model_selection import train_test_split |
|
import shutil |
|
import argparse |
|
|
|
from config import DATA_ROOT |
|
|
|
dataset_root = os.path.join(DATA_ROOT, 'head_ct') |
|
|
|
label_file = os.path.join(dataset_root, 'labels.csv') |
|
|
|
data = np.loadtxt(label_file, dtype=int, delimiter=',', skiprows=1) |
|
|
|
fnames = data[:, 0] |
|
label = data[:, 1] |
|
|
|
normal_fnames = fnames[label==0] |
|
outlier_fnames = fnames[label==1] |
|
|
|
|
|
target_root = '../datasets/HeadCT_anomaly_detection/headct' |
|
train_root = os.path.join(target_root, 'train/good') |
|
if not os.path.exists(train_root): |
|
os.makedirs(train_root) |
|
|
|
test_normal_root = os.path.join(target_root, 'test/good') |
|
if not os.path.exists(test_normal_root): |
|
os.makedirs(test_normal_root) |
|
for f in normal_fnames: |
|
source = os.path.join(dataset_root, 'head_ct/', '{:0>3d}.png'.format(f)) |
|
shutil.copy(source, test_normal_root) |
|
|
|
test_outlier_root = os.path.join(target_root, 'test/defect') |
|
if not os.path.exists(test_outlier_root): |
|
os.makedirs(test_outlier_root) |
|
for f in outlier_fnames: |
|
source = os.path.join(dataset_root, 'head_ct/', '{:0>3d}.png'.format(f)) |
|
shutil.copy(source, test_outlier_root) |
|
|
|
print('Done') |