This code demonstrates the RandomAffine
transform in torchvision. It explores various parameter combinations, showcasing its capabilities for image rotation, translation, scaling, and shearing. The results are visualized using matplotlib.
The RandomAffine
transform allows for two-dimensional and three-dimensional image transformations. Key parameters include:
degrees
: Specifies the rotation angle(s). A single float value represents a symmetric range [-degrees, degrees]. A tuple/list of two floats defines an asymmetric range [min, max].
translate
: Controls the translation. A tuple/list of two floats [a, b] represents horizontal and vertical shifts, respectively, as fractions of the image width and height.
scale
: Defines the scaling range [min, max].
shear
: Introduces shearing. A single float value implies a symmetric shear range [-shear, shear] for x, with y shear set to 0. A tuple/list of two floats specifies the x shear range; a four-element tuple/list defines both x and y shear ranges.
interpolation
: Specifies the interpolation method (e.g., InterpolationMode.NEAREST
).
fill
: Determines the fill color for areas outside the transformed image. Can be a single value or a tuple/list representing RGB values.
center
: Sets the rotation center.
The code systematically tests different parameter settings, including extreme values to demonstrate the transform's behavior under various conditions. The visualization clearly shows the effects of each parameter on the input images. The two show_images
functions provide identical functionality, one applying the transform directly within the plotting loop and the other pre-calculating the transformations.
The images displayed below visually represent the outputs of the various RandomAffine
transformations applied to images from the OxfordIIITPet dataset.
The above is the detailed content of RandomAffine in PyTorch. For more information, please follow other related articles on the PHP Chinese website!