将 MONAI 变换统一应用于图像序列

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

我正在处理一个医学数据集,其中每个数据点都是 10 个图像的序列。我想将 MONAI 变换(Rand2DElastic、RandRotate、RandZoom、RandGaussianNoise)应用于这些序列以进行增强。这些变换应随机应用于每个序列,但出于一致性目的,给定序列中的每个图像应具有完全相同的变换。是否已有功能可以做到这一点?如果没有的话有什么好的方法吗? 数据存储为形状为 (n, 10, 3, 128, 128) 的 np 数组 谢谢!

images = [Image.open(os.path.join(self.root_dir, image_path)) for image_path in sequence_path]
images = [np.transpose(np.array(image), (2,0,1)) for image in images] 

        if self.augment:
            augment_transforms = Compose([
                Rand2DElastic(prob=0.6, spacing=(30, 30), magnitude_range=(0.1, 0.3)),
                RandRotate(range_x=np.pi / 60, prob=0.2, keep_size=True),
                RandZoom(min_zoom=0.8, max_zoom=1.5, prob=0.6),
                RandGaussianNoise(prob=0.5, mean=0, std=0.01)
            ])
            images = augment_transforms({"image": np.array(images)})["image"]
            print(images)

这是我到目前为止所尝试的,但没有给出我需要的结果

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

我现在也在与 MONAI 合作。也许你可以使用dictionary-transforms。我使用它们对图像和相应的分割掩模3D seg教程进行相同的转换。在您的情况下,您应该输入 10 个图像系列。 也许另一种选择是将 10 个对象连接到一个多维度的对象。

© www.soinside.com 2019 - 2024. All rights reserved.