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

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        Click :ref:`here <sphx_glr_download_auto_examples_applications_plot_image_comparison.py>`
        to download the full example code

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

.. _sphx_glr_auto_examples_applications_plot_image_comparison.py:


=======================
Visual image comparison
=======================

Image comparison is particularly useful when performing image processing tasks
such as exposure manipulations, filtering, and restauration.

This example shows how to easily compare two images with various approaches.

.. GENERATED FROM PYTHON SOURCE LINES 12-29

.. code-block:: default

    import matplotlib.pyplot as plt
    from matplotlib.gridspec import GridSpec

    from skimage import data, transform, exposure
    from skimage.util import compare_images


    img1 = data.coins()
    img1_equalized = exposure.equalize_hist(img1)
    img2 = transform.rotate(img1, 2)


    comp_equalized = compare_images(img1, img1_equalized, method='checkerboard')
    diff_rotated = compare_images(img1, img2, method='diff')
    blend_rotated = compare_images(img1, img2, method='blend')









.. GENERATED FROM PYTHON SOURCE LINES 30-35

Checkerboard
============

The `checkerboard` method alternates tiles from the first and the second
images.

.. GENERATED FROM PYTHON SOURCE LINES 35-54

.. code-block:: default


    fig = plt.figure(figsize=(8, 9))

    gs = GridSpec(3, 2)
    ax0 = fig.add_subplot(gs[0, 0])
    ax1 = fig.add_subplot(gs[0, 1])
    ax2 = fig.add_subplot(gs[1:, :])

    ax0.imshow(img1, cmap='gray')
    ax0.set_title('Original')
    ax1.imshow(img1_equalized, cmap='gray')
    ax1.set_title('Equalized')
    ax2.imshow(comp_equalized, cmap='gray')
    ax2.set_title('Checkerboard comparison')
    for a in (ax0, ax1, ax2):
        a.axis('off')
    plt.tight_layout()
    plt.plot()




.. image-sg:: /auto_examples/applications/images/sphx_glr_plot_image_comparison_001.png
   :alt: Original, Equalized, Checkerboard comparison
   :srcset: /auto_examples/applications/images/sphx_glr_plot_image_comparison_001.png
   :class: sphx-glr-single-img


.. rst-class:: sphx-glr-script-out

 Out:

 .. code-block:: none


    []



.. GENERATED FROM PYTHON SOURCE LINES 55-59

Diff
====

The `diff` method computes the absolute difference between the two images.

.. GENERATED FROM PYTHON SOURCE LINES 59-78

.. code-block:: default


    fig = plt.figure(figsize=(8, 9))

    gs = GridSpec(3, 2)
    ax0 = fig.add_subplot(gs[0, 0])
    ax1 = fig.add_subplot(gs[0, 1])
    ax2 = fig.add_subplot(gs[1:, :])

    ax0.imshow(img1, cmap='gray')
    ax0.set_title('Original')
    ax1.imshow(img2, cmap='gray')
    ax1.set_title('Rotated')
    ax2.imshow(diff_rotated, cmap='gray')
    ax2.set_title('Diff comparison')
    for a in (ax0, ax1, ax2):
        a.axis('off')
    plt.tight_layout()
    plt.plot()




.. image-sg:: /auto_examples/applications/images/sphx_glr_plot_image_comparison_002.png
   :alt: Original, Rotated, Diff comparison
   :srcset: /auto_examples/applications/images/sphx_glr_plot_image_comparison_002.png
   :class: sphx-glr-single-img


.. rst-class:: sphx-glr-script-out

 Out:

 .. code-block:: none


    []



.. GENERATED FROM PYTHON SOURCE LINES 79-83

Blend
=====

`blend` is the result of the average of the two images.

.. GENERATED FROM PYTHON SOURCE LINES 83-101

.. code-block:: default


    fig = plt.figure(figsize=(8, 9))

    gs = GridSpec(3, 2)
    ax0 = fig.add_subplot(gs[0, 0])
    ax1 = fig.add_subplot(gs[0, 1])
    ax2 = fig.add_subplot(gs[1:, :])

    ax0.imshow(img1, cmap='gray')
    ax0.set_title('Original')
    ax1.imshow(img2, cmap='gray')
    ax1.set_title('Rotated')
    ax2.imshow(blend_rotated, cmap='gray')
    ax2.set_title('Blend comparison')
    for a in (ax0, ax1, ax2):
        a.axis('off')
    plt.tight_layout()
    plt.plot()



.. image-sg:: /auto_examples/applications/images/sphx_glr_plot_image_comparison_003.png
   :alt: Original, Rotated, Blend comparison
   :srcset: /auto_examples/applications/images/sphx_glr_plot_image_comparison_003.png
   :class: sphx-glr-single-img


.. rst-class:: sphx-glr-script-out

 Out:

 .. code-block:: none


    []




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

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


.. _sphx_glr_download_auto_examples_applications_plot_image_comparison.py:


.. only :: html

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



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

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



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

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


.. only:: html

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

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