in activemri/experimental/cvpr19_models/data/dicom_data_loader.py [0:0]
def __init__(self, root, scan_type=None, num_volumes=None):
self.metadata = json.load(open(os.path.join(root, "metadata.json")))
shape = (
len(self.metadata["volumes"]),
self.metadata["num_slices"],
self.metadata["resolution"],
self.metadata["resolution"],
)
self.volumes = np.memmap(
os.path.join(root, "data.bin"), self.metadata["dtype"], "r"
).reshape(shape)
volume_ids = []
for i, volume in enumerate(self.metadata["volumes"]):
if scan_type == "all" or volume["scan_type"] == scan_type:
volume_ids.append(i)
if num_volumes is not None:
rng = np.random.RandomState(1234)
rng.shuffle(volume_ids)
volume_ids = volume_ids[:num_volumes]
self.volume_ids = {i: id for i, id in enumerate(volume_ids)}