AdaCLIP / data_preprocess /headct-pre.py
Caoyunkang's picture
first commit
a25563f verified
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')