Hello everyone,
I’m seeking assistance with a data augmentation task involving pairs of 3D image and label data. My dataset consists of 3D volumes, where each volume is represented as a stack of 2D slices. I’m looking for guidance on how to apply augmentation techniques like rotation, shifting, and flipping to both the image and corresponding label slices while ensuring their spatial correspondence.
Thank you in advance for your help!
Hi @samo_timy ,
Here’s a basic code template that can help you get started with your data augmentation process:
import numpy as np
import tensorflow as tf
def apply_augmentation(image, label):
# Apply random rotation
angle = np.random.uniform(-15, 15)
image = tf.image.rot90(image, k=angle // 90)
label = tf.image.rot90(label, k=angle // 90)
# Apply random shifting
shift = np.random.randint(-10, 10, size=3)
image = tf.roll(image, shift, axis=(0, 1, 2))
label = tf.roll(label, shift, axis=(0, 1, 2))
# Apply random flipping
if np.random.rand() < 0.5:
image = tf.reverse(image, axis=[0])
label = tf.reverse(label, axis=[0])
return image, label
# Iterate through your dataset
for image, label in dataset:
# Apply augmentation
aug_image, aug_label = apply_augmentation(image, label)
For more details you can refer the Tensorflow Image augmentation documentation
I hope this helps!
Thanks.
Hi @Laxma_Reddy_Patlolla ,
thank you so much.