D4

Targets:
image
mask
bboxes
keypoints
volume
mask3d
Image Types:uint8, float32

Applies one of the eight possible D4 dihedral group transformations to a square-shaped input, maintaining the square shape. These transformations correspond to the symmetries of a square, including rotations and reflections.

The D4 group transformations include:

  • 'e' (identity): No transformation is applied.
  • 'r90' (rotation by 90 degrees counterclockwise)
  • 'r180' (rotation by 180 degrees)
  • 'r270' (rotation by 270 degrees counterclockwise)
  • 'v' (reflection across the vertical midline)
  • 'hvt' (reflection across the anti-diagonal)
  • 'h' (reflection across the horizontal midline)
  • 't' (reflection across the main diagonal)

Even if the probability (p) of applying the transform is set to 1, the identity transformation 'e' may still occur, which means the input will remain unchanged in one out of eight cases.

Arguments
p
float
1

Probability of applying the transform. Default: 1.0.

Examples
>>> import numpy as np
>>> import albumentations as A
>>> image = np.random.randint(0, 256, (100, 100, 3), dtype=np.uint8)
>>> transform = A.Compose([
...     A.D4(p=1.0),
... ])
>>> transformed = transform(image=image)
>>> transformed_image = transformed['image']
# The resulting image will be one of the 8 possible D4 transformations of the input
Notes
  • This transform is particularly useful for augmenting data that does not have a clear orientation, such as top-view satellite or drone imagery, or certain types of medical images.
  • The input image should be square-shaped for optimal results. Non-square inputs may lead to unexpected behavior or distortions.
  • When applied to bounding boxes or keypoints, their coordinates will be adjusted according to the selected transformation.
  • This transform preserves the aspect ratio and size of the input.