使用 Torchio 对两个图像应用完全相同的变换

问题描述 投票:0回答:1

我想使用 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 不适用于主题数据集),但我找不到任何有关如何正确执行此操作的信息。有人可以帮忙吗?

python machine-learning deep-learning image-segmentation data-augmentation
1个回答
0
投票

这两个张量都需要添加到主题中。这是正确的代码:

    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
© www.soinside.com 2019 - 2024. All rights reserved.