.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "auto_examples/transforms/plot_transforms_illustrations.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_auto_examples_transforms_plot_transforms_illustrations.py:


==========================
Illustration of transforms
==========================

.. note::
    Try on `collab <https://colab.research.google.com/github/pytorch/vision/blob/gh-pages/main/_generated_ipynb_notebooks/plot_transforms_illustrations.ipynb>`_
    or :ref:`go to the end <sphx_glr_download_auto_examples_transforms_plot_transforms_illustrations.py>` to download the full example code.

This example illustrates some of the various transforms available in :ref:`the
torchvision.transforms.v2 module <transforms>`.

.. GENERATED FROM PYTHON SOURCE LINES 14-34

.. code-block:: Python



    from PIL import Image
    from pathlib import Path
    import matplotlib.pyplot as plt

    import torch
    from torchvision.transforms import v2

    plt.rcParams["savefig.bbox"] = 'tight'

    # if you change the seed, make sure that the randomly-applied transforms
    # properly show that the image can be both transformed and *not* transformed!
    torch.manual_seed(0)

    # If you're trying to run that on collab, you can download the assets and the
    # helpers from https://github.com/pytorch/vision/tree/main/gallery/
    from helpers import plot
    orig_img = Image.open(Path('../assets') / 'astronaut.jpg')








.. GENERATED FROM PYTHON SOURCE LINES 36-47

Geometric Transforms
--------------------
Geometric image transformation refers to the process of altering the geometric properties of an image,
such as its shape, size, orientation, or position.
It involves applying mathematical operations to the image pixels or coordinates to achieve the desired transformation.

Pad
~~~
The :class:`~torchvision.transforms.Pad` transform
(see also :func:`~torchvision.transforms.functional.pad`)
pads all image borders with some pixel values.

.. GENERATED FROM PYTHON SOURCE LINES 47-50

.. code-block:: Python

    padded_imgs = [v2.Pad(padding=padding)(orig_img) for padding in (3, 10, 30, 50)]
    plot([orig_img] + padded_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_001.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_001.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 51-56

Resize
~~~~~~
The :class:`~torchvision.transforms.Resize` transform
(see also :func:`~torchvision.transforms.functional.resize`)
resizes an image.

.. GENERATED FROM PYTHON SOURCE LINES 56-59

.. code-block:: Python

    resized_imgs = [v2.Resize(size=size)(orig_img) for size in (30, 50, 100, orig_img.size)]
    plot([orig_img] + resized_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_002.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_002.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 60-65

CenterCrop
~~~~~~~~~~
The :class:`~torchvision.transforms.CenterCrop` transform
(see also :func:`~torchvision.transforms.functional.center_crop`)
crops the given image at the center.

.. GENERATED FROM PYTHON SOURCE LINES 65-68

.. code-block:: Python

    center_crops = [v2.CenterCrop(size=size)(orig_img) for size in (30, 50, 100, orig_img.size)]
    plot([orig_img] + center_crops)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_003.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_003.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 69-74

FiveCrop
~~~~~~~~
The :class:`~torchvision.transforms.FiveCrop` transform
(see also :func:`~torchvision.transforms.functional.five_crop`)
crops the given image into four corners and the central crop.

.. GENERATED FROM PYTHON SOURCE LINES 74-77

.. code-block:: Python

    (top_left, top_right, bottom_left, bottom_right, center) = v2.FiveCrop(size=(100, 100))(orig_img)
    plot([orig_img] + [top_left, top_right, bottom_left, bottom_right, center])




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_004.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_004.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 78-83

RandomPerspective
~~~~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomPerspective` transform
(see also :func:`~torchvision.transforms.functional.perspective`)
performs random perspective transform on an image.

.. GENERATED FROM PYTHON SOURCE LINES 83-87

.. code-block:: Python

    perspective_transformer = v2.RandomPerspective(distortion_scale=0.6, p=1.0)
    perspective_imgs = [perspective_transformer(orig_img) for _ in range(4)]
    plot([orig_img] + perspective_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_005.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_005.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 88-93

RandomRotation
~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomRotation` transform
(see also :func:`~torchvision.transforms.functional.rotate`)
rotates an image with random angle.

.. GENERATED FROM PYTHON SOURCE LINES 93-97

.. code-block:: Python

    rotater = v2.RandomRotation(degrees=(0, 180))
    rotated_imgs = [rotater(orig_img) for _ in range(4)]
    plot([orig_img] + rotated_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_006.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_006.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 98-103

RandomAffine
~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomAffine` transform
(see also :func:`~torchvision.transforms.functional.affine`)
performs random affine transform on an image.

.. GENERATED FROM PYTHON SOURCE LINES 103-107

.. code-block:: Python

    affine_transfomer = v2.RandomAffine(degrees=(30, 70), translate=(0.1, 0.3), scale=(0.5, 0.75))
    affine_imgs = [affine_transfomer(orig_img) for _ in range(4)]
    plot([orig_img] + affine_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_007.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_007.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 108-114

ElasticTransform
~~~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.ElasticTransform` transform
(see also :func:`~torchvision.transforms.functional.elastic_transform`)
Randomly transforms the morphology of objects in images and produces a
see-through-water-like effect.

.. GENERATED FROM PYTHON SOURCE LINES 114-118

.. code-block:: Python

    elastic_transformer = v2.ElasticTransform(alpha=250.0)
    transformed_imgs = [elastic_transformer(orig_img) for _ in range(2)]
    plot([orig_img] + transformed_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_008.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_008.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 119-124

RandomCrop
~~~~~~~~~~
The :class:`~torchvision.transforms.RandomCrop` transform
(see also :func:`~torchvision.transforms.functional.crop`)
crops an image at a random location.

.. GENERATED FROM PYTHON SOURCE LINES 124-128

.. code-block:: Python

    cropper = v2.RandomCrop(size=(128, 128))
    crops = [cropper(orig_img) for _ in range(4)]
    plot([orig_img] + crops)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_009.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_009.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 129-135

RandomResizedCrop
~~~~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomResizedCrop` transform
(see also :func:`~torchvision.transforms.functional.resized_crop`)
crops an image at a random location, and then resizes the crop to a given
size.

.. GENERATED FROM PYTHON SOURCE LINES 135-139

.. code-block:: Python

    resize_cropper = v2.RandomResizedCrop(size=(32, 32))
    resized_crops = [resize_cropper(orig_img) for _ in range(4)]
    plot([orig_img] + resized_crops)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_010.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_010.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 140-156

Photometric Transforms
----------------------
Photometric image transformation refers to the process of modifying the photometric properties of an image,
such as its brightness, contrast, color, or tone.
These transformations are applied to change the visual appearance of an image
while preserving its geometric structure.

Except :class:`~torchvision.transforms.Grayscale`, the following transforms are random,
which means that the same transform
instance will produce different result each time it transforms a given image.

Grayscale
~~~~~~~~~
The :class:`~torchvision.transforms.Grayscale` transform
(see also :func:`~torchvision.transforms.functional.to_grayscale`)
converts an image to grayscale

.. GENERATED FROM PYTHON SOURCE LINES 156-159

.. code-block:: Python

    gray_img = v2.Grayscale()(orig_img)
    plot([orig_img, gray_img], cmap='gray')




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_011.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_011.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 160-164

ColorJitter
~~~~~~~~~~~
The :class:`~torchvision.transforms.ColorJitter` transform
randomly changes the brightness, contrast, saturation, hue, and other properties of an image.

.. GENERATED FROM PYTHON SOURCE LINES 164-168

.. code-block:: Python

    jitter = v2.ColorJitter(brightness=.5, hue=.3)
    jittered_imgs = [jitter(orig_img) for _ in range(4)]
    plot([orig_img] + jittered_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_012.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_012.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 169-174

GaussianBlur
~~~~~~~~~~~~
The :class:`~torchvision.transforms.GaussianBlur` transform
(see also :func:`~torchvision.transforms.functional.gaussian_blur`)
performs gaussian blur transform on an image.

.. GENERATED FROM PYTHON SOURCE LINES 174-178

.. code-block:: Python

    blurrer = v2.GaussianBlur(kernel_size=(5, 9), sigma=(0.1, 5.))
    blurred_imgs = [blurrer(orig_img) for _ in range(4)]
    plot([orig_img] + blurred_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_013.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_013.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 179-184

RandomInvert
~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomInvert` transform
(see also :func:`~torchvision.transforms.functional.invert`)
randomly inverts the colors of the given image.

.. GENERATED FROM PYTHON SOURCE LINES 184-188

.. code-block:: Python

    inverter = v2.RandomInvert()
    invertered_imgs = [inverter(orig_img) for _ in range(4)]
    plot([orig_img] + invertered_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_014.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_014.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 189-195

RandomPosterize
~~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomPosterize` transform
(see also :func:`~torchvision.transforms.functional.posterize`)
randomly posterizes the image by reducing the number of bits
of each color channel.

.. GENERATED FROM PYTHON SOURCE LINES 195-199

.. code-block:: Python

    posterizer = v2.RandomPosterize(bits=2)
    posterized_imgs = [posterizer(orig_img) for _ in range(4)]
    plot([orig_img] + posterized_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_015.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_015.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 200-206

RandomSolarize
~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomSolarize` transform
(see also :func:`~torchvision.transforms.functional.solarize`)
randomly solarizes the image by inverting all pixel values above
the threshold.

.. GENERATED FROM PYTHON SOURCE LINES 206-210

.. code-block:: Python

    solarizer = v2.RandomSolarize(threshold=192.0)
    solarized_imgs = [solarizer(orig_img) for _ in range(4)]
    plot([orig_img] + solarized_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_016.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_016.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 211-216

RandomAdjustSharpness
~~~~~~~~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomAdjustSharpness` transform
(see also :func:`~torchvision.transforms.functional.adjust_sharpness`)
randomly adjusts the sharpness of the given image.

.. GENERATED FROM PYTHON SOURCE LINES 216-220

.. code-block:: Python

    sharpness_adjuster = v2.RandomAdjustSharpness(sharpness_factor=2)
    sharpened_imgs = [sharpness_adjuster(orig_img) for _ in range(4)]
    plot([orig_img] + sharpened_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_017.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_017.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 221-226

RandomAutocontrast
~~~~~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomAutocontrast` transform
(see also :func:`~torchvision.transforms.functional.autocontrast`)
randomly applies autocontrast to the given image.

.. GENERATED FROM PYTHON SOURCE LINES 226-230

.. code-block:: Python

    autocontraster = v2.RandomAutocontrast()
    autocontrasted_imgs = [autocontraster(orig_img) for _ in range(4)]
    plot([orig_img] + autocontrasted_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_018.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_018.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 231-236

RandomEqualize
~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomEqualize` transform
(see also :func:`~torchvision.transforms.functional.equalize`)
randomly equalizes the histogram of the given image.

.. GENERATED FROM PYTHON SOURCE LINES 236-240

.. code-block:: Python

    equalizer = v2.RandomEqualize()
    equalized_imgs = [equalizer(orig_img) for _ in range(4)]
    plot([orig_img] + equalized_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_019.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_019.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 241-247

JPEG
~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.v2.JPEG` transform
(see also :func:`~torchvision.transforms.v2.functional.jpeg`)
applies JPEG compression to the given image with random
degree of compression.

.. GENERATED FROM PYTHON SOURCE LINES 247-251

.. code-block:: Python

    jpeg = v2.JPEG((5, 50))
    jpeg_imgs = [jpeg(orig_img) for _ in range(4)]
    plot([orig_img] + jpeg_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_020.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_020.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 252-262

Augmentation Transforms
-----------------------
The following transforms are combinations of multiple transforms,
either geometric or photometric, or both.

AutoAugment
~~~~~~~~~~~
The :class:`~torchvision.transforms.AutoAugment` transform
automatically augments data based on a given auto-augmentation policy.
See :class:`~torchvision.transforms.AutoAugmentPolicy` for the available policies.

.. GENERATED FROM PYTHON SOURCE LINES 262-271

.. code-block:: Python

    policies = [v2.AutoAugmentPolicy.CIFAR10, v2.AutoAugmentPolicy.IMAGENET, v2.AutoAugmentPolicy.SVHN]
    augmenters = [v2.AutoAugment(policy) for policy in policies]
    imgs = [
        [augmenter(orig_img) for _ in range(4)]
        for augmenter in augmenters
    ]
    row_title = [str(policy).split('.')[-1] for policy in policies]
    plot([[orig_img] + row for row in imgs], row_title=row_title)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_021.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_021.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 272-275

RandAugment
~~~~~~~~~~~
The :class:`~torchvision.transforms.RandAugment` is an alternate version of AutoAugment.

.. GENERATED FROM PYTHON SOURCE LINES 275-279

.. code-block:: Python

    augmenter = v2.RandAugment()
    imgs = [augmenter(orig_img) for _ in range(4)]
    plot([orig_img] + imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_022.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_022.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 280-285

TrivialAugmentWide
~~~~~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.TrivialAugmentWide` is an alternate implementation of AutoAugment.
However, instead of transforming an image multiple times, it transforms an image only once
using a random transform from a given list with a random strength number.

.. GENERATED FROM PYTHON SOURCE LINES 285-289

.. code-block:: Python

    augmenter = v2.TrivialAugmentWide()
    imgs = [augmenter(orig_img) for _ in range(4)]
    plot([orig_img] + imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_023.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_023.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 290-293

AugMix
~~~~~~
The :class:`~torchvision.transforms.AugMix` transform interpolates between augmented versions of an image.

.. GENERATED FROM PYTHON SOURCE LINES 293-297

.. code-block:: Python

    augmenter = v2.AugMix()
    imgs = [augmenter(orig_img) for _ in range(4)]
    plot([orig_img] + imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_024.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_024.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 298-310

Randomly-applied Transforms
---------------------------

The following transforms are randomly-applied given a probability ``p``.  That is, given ``p = 0.5``,
there is a 50% chance to return the original image, and a 50% chance to return the transformed image,
even when called with the same transform instance!

RandomHorizontalFlip
~~~~~~~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomHorizontalFlip` transform
(see also :func:`~torchvision.transforms.functional.hflip`)
performs horizontal flip of an image, with a given probability.

.. GENERATED FROM PYTHON SOURCE LINES 310-314

.. code-block:: Python

    hflipper = v2.RandomHorizontalFlip(p=0.5)
    transformed_imgs = [hflipper(orig_img) for _ in range(4)]
    plot([orig_img] + transformed_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_025.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_025.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 315-320

RandomVerticalFlip
~~~~~~~~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomVerticalFlip` transform
(see also :func:`~torchvision.transforms.functional.vflip`)
performs vertical flip of an image, with a given probability.

.. GENERATED FROM PYTHON SOURCE LINES 320-324

.. code-block:: Python

    vflipper = v2.RandomVerticalFlip(p=0.5)
    transformed_imgs = [vflipper(orig_img) for _ in range(4)]
    plot([orig_img] + transformed_imgs)




.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_026.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_026.png
   :class: sphx-glr-single-img





.. GENERATED FROM PYTHON SOURCE LINES 325-329

RandomApply
~~~~~~~~~~~
The :class:`~torchvision.transforms.RandomApply` transform
randomly applies a list of transforms, with a given probability.

.. GENERATED FROM PYTHON SOURCE LINES 329-332

.. code-block:: Python

    applier = v2.RandomApply(transforms=[v2.RandomCrop(size=(64, 64))], p=0.5)
    transformed_imgs = [applier(orig_img) for _ in range(4)]
    plot([orig_img] + transformed_imgs)



.. image-sg:: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_027.png
   :alt: plot transforms illustrations
   :srcset: /auto_examples/transforms/images/sphx_glr_plot_transforms_illustrations_027.png
   :class: sphx-glr-single-img






.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 9.323 seconds)


.. _sphx_glr_download_auto_examples_transforms_plot_transforms_illustrations.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: plot_transforms_illustrations.ipynb <plot_transforms_illustrations.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: plot_transforms_illustrations.py <plot_transforms_illustrations.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: plot_transforms_illustrations.zip <plot_transforms_illustrations.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_