This repository has been archived by the owner on May 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathorganize_folder_structure.py
93 lines (63 loc) · 2.76 KB
/
organize_folder_structure.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
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
import os
import shutil
from time import time
import re
import argparse
import numpy as np
import SimpleITK as sitk
import scipy.ndimage as ndimage
def numericalSort(value):
numbers = re.compile(r'(\d+)')
parts = numbers.split(value)
parts[1::2] = map(int, parts[1::2])
return parts
def lstFiles(Path):
images_list = [] # create an empty list, the raw image data files is stored here
for dirName, subdirList, fileList in os.walk(Path):
for filename in fileList:
if ".nii.gz" in filename.lower():
images_list.append(os.path.join(dirName, filename))
elif ".nii" in filename.lower():
images_list.append(os.path.join(dirName, filename))
elif ".mhd" in filename.lower():
images_list.append(os.path.join(dirName, filename))
images_list = sorted(images_list, key=numericalSort)
return images_list
parser = argparse.ArgumentParser()
parser.add_argument('--images', default='./Data_folder/mocorrected/volumes', help='path to the images a (early frames)')
parser.add_argument('--labels', default='./Data_folder/mocorrected/labels', help='path to the images b (late frames)')
parser.add_argument('--split', default=2, help='number of images for testing')
args = parser.parse_args()
if __name__ == "__main__":
list_images = lstFiles(args.images)
list_labels = lstFiles(args.labels)
if not os.path.isdir('./Data_folder/train'):
os.mkdir('./Data_folder/train')
if not os.path.isdir('./Data_folder/test'):
os.mkdir('./Data_folder/test')
for i in range(len(list_images)-int(args.split)):
a = list_images[int(args.split)+i]
b = list_labels[int(args.split)+i]
print(a)
save_directory = os.path.join(str('./Data_folder/train/patient_' + str(i)))
if not os.path.isdir(save_directory):
os.mkdir(save_directory)
label = sitk.ReadImage(b)
image = sitk.ReadImage(a)
label_directory = os.path.join(str(save_directory), 'label.nii')
image_directory = os.path.join(str(save_directory), 'image.nii')
sitk.WriteImage(image, image_directory)
sitk.WriteImage(label, label_directory)
for i in range(int(args.split)):
a = list_images[i]
b = list_labels[i]
print(a)
save_directory = os.path.join(str('./Data_folder/test/patient_' + str(i)))
if not os.path.isdir(save_directory):
os.mkdir(save_directory)
label = sitk.ReadImage(b)
image = sitk.ReadImage(a)
label_directory = os.path.join(str(save_directory), 'label.nii')
image_directory = os.path.join(str(save_directory), 'image.nii')
sitk.WriteImage(image, image_directory)
sitk.WriteImage(label, label_directory)