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

    Click :ref:`here <sphx_glr_download_auto_examples_numpy_operations_plot_camera_numpy.py>` to download the full example code
.. rst-class:: sphx-glr-example-title

.. _sphx_glr_auto_examples_numpy_operations_plot_camera_numpy.py:


Using simple NumPy operations for manipulating images
=====================================================

This script illustrates how to use basic NumPy operations, such as slicing,
masking and fancy indexing, in order to modify the pixel values of an image.




.. image:: /auto_examples/numpy_operations/images/sphx_glr_plot_camera_numpy_001.png
    :class: sphx-glr-single-img





.. code-block:: python


    import numpy as np
    from skimage import data
    import matplotlib.pyplot as plt

    camera = data.camera()
    camera[:10] = 0
    mask = camera < 87
    camera[mask] = 255
    inds_x = np.arange(len(camera))
    inds_y = (4 * inds_x) % len(camera)
    camera[inds_x, inds_y] = 0

    l_x, l_y = camera.shape[0], camera.shape[1]
    X, Y = np.ogrid[:l_x, :l_y]
    outer_disk_mask = (X - l_x / 2)**2 + (Y - l_y / 2)**2 > (l_x / 2)**2
    camera[outer_disk_mask] = 0

    plt.figure(figsize=(4, 4))
    plt.imshow(camera, cmap='gray', interpolation='nearest')
    plt.axis('off')
    plt.show()

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


.. _sphx_glr_download_auto_examples_numpy_operations_plot_camera_numpy.py:


.. only :: html

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



  .. container:: sphx-glr-download

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



  .. container:: sphx-glr-download

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


.. only:: html

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

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