- Color adjustment (brightness, saturation, contrast)
- Random scaling
- Random cropping
- PCA-based color augmentation
- Translation shifting
- Horizontal/vertical flipping
- Rotation and affine transformations
- Gaussian noise additoin
- Class imbalance correction
Implementation Example (NumPy/PIL)
from PIL import Image, ImageEnhance import numpy as np import random
class ImageTransformer: @staticmethod def adjust_colors(img): """Apply random color transformations""" factors = { 'saturation': np.random.uniform(0.5, 1.5), 'brightness': np.random.uniform(0.7, 1.3), 'contrast': np.random.uniform(0.8, 1.2), 'sharpness': np.random.uniform(0.5, 1.5) } img = ImageEnhance.Color(img).enhance(factors['saturation']) img = ImageEnhance.Brightness(img).enhance(factors['brightness']) img = ImageEnhance.Contrast(img).enhance(factors['contrast']) return ImageEnhance.Sharpness(img).enhance(factors['sharpness'])
@staticmethod
def add_noise(img, intensity=0.3):
"""Add Gaussian noise to image"""
arr = np.array(img)
noise = np.random.normal(0, intensity, arr.shape)
noisy_img = np.clip(arr + noise * 255, 0, 255).astype(np.uint8)
return Image.fromarray(noisy_img)
@staticmethod
def random_rotate(img, max_angle=45):
"""Rotate image by random angle"""
angle = random.uniform(-max_angle, max_angle)
return img.rotate(angle, expand=True)
</div>### TensorFlow Implementation
<div>```
import tensorflow as tf
def tf_augment(image):
"""TensorFlow image augmentation pipeline"""
image = tf.image.random_flip_left_right(image)
image = tf.image.random_brightness(image, 0.2)
image = tf.image.random_contrast(image, 0.8, 1.2)
image = tf.image.random_saturation(image, 0.8, 1.2)
image = tf.image.random_hue(image, 0.1)
return tf.clip_by_value(image, 0.0, 1.0)