.. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_advanced_image_processing_auto_examples_plot_find_edges.py: Finding edges with Sobel filters ================================== The Sobel filter is one of the simplest way of finding edges. .. image:: /advanced/image_processing/auto_examples/images/sphx_glr_plot_find_edges_001.png :class: sphx-glr-single-img .. code-block:: python import numpy as np from scipy import ndimage import matplotlib.pyplot as plt im = np.zeros((256, 256)) im[64:-64, 64:-64] = 1 im = ndimage.rotate(im, 15, mode='constant') im = ndimage.gaussian_filter(im, 8) sx = ndimage.sobel(im, axis=0, mode='constant') sy = ndimage.sobel(im, axis=1, mode='constant') sob = np.hypot(sx, sy) plt.figure(figsize=(16, 5)) plt.subplot(141) plt.imshow(im, cmap=plt.cm.gray) plt.axis('off') plt.title('square', fontsize=20) plt.subplot(142) plt.imshow(sx) plt.axis('off') plt.title('Sobel (x direction)', fontsize=20) plt.subplot(143) plt.imshow(sob) plt.axis('off') plt.title('Sobel filter', fontsize=20) im += 0.07*np.random.random(im.shape) sx = ndimage.sobel(im, axis=0, mode='constant') sy = ndimage.sobel(im, axis=1, mode='constant') sob = np.hypot(sx, sy) plt.subplot(144) plt.imshow(sob) plt.axis('off') plt.title('Sobel for noisy image', fontsize=20) plt.subplots_adjust(wspace=0.02, hspace=0.02, top=1, bottom=0, left=0, right=0.9) plt.show() **Total running time of the script:** ( 0 minutes 0.151 seconds) .. _sphx_glr_download_advanced_image_processing_auto_examples_plot_find_edges.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download :download:`Download Python source code: plot_find_edges.py ` .. container:: sphx-glr-download :download:`Download Jupyter notebook: plot_find_edges.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_