我想使用 torchio 对两个图像(图像和分割数据)应用完全相同的转换。这两个图像都存储在名为
image_data
和 segmentation_data
的 numpy 数组中。
到目前为止,我添加了一些增强功能:
self.augmentations = tio.Compose([
affine_transform,
elastic_transform,
flip_transform,
swap_transform
])
例如, elastic_transform = tio.RandomElasticDeformation 并尝试通过以下方式将它们应用到图像:
subject_image = tio.Subject(image=tio.ScalarImage(tensor=image_data))
subject_segmentation = tio.Subject(
image=tio.ScalarImage(tensor=segmentation_data))
dataset = tio.SubjectsDataset([subject_image, subject_segmentation])
dataset = self.augmentations(dataset)
image_data = dataset[0]['image'].data
segmentation_data = dataset[1]['image'].data
不幸的是,这是不正确的(因为 Compose 不适用于主题数据集),但我找不到任何有关如何正确执行此操作的信息。有人可以帮忙吗?
这两个张量都需要添加到主题中。这是正确的代码:
subject = tio.Subject(image=tio.ScalarImage(tensor=image_data),
segmentation=tio.ScalarImage(tensor=segmentation_data))
transformed_subject = self.augmentations(subject)
transformed_image = transformed_subject.image.data
transformed_segmentation = transformed_subject.segmentation.data