EuroSciPy logo

EuroSciPy 2013

Brussels, Belgium - August 21-24 2013

Image processing with scikit-image and the SciPy stack

Emmanuelle Gouillart

Wed 21 9 a.m.–10:30 a.m. in H.1302


Numerical image processing involves the manipulation and transformation of images, often in order to extract information of interest from the images. NumPy ndarrays provide an efficient container for image data, that can therefore be processed using the SciPy toolstack.

In this tutorial, we will first briefly see how simple operations on images (e.g. cropping, framing) can be performed using NumPy. More complex image processing operations will be handled principally by the scikit-image module, or occasionally by the ndimage submodule of SciPy. Compared to other image processing modules for Python, scikit-image is designed to work transparently with numpy nd-arrays, and is written in pure Python and some Cython in order to promote readability and maintainability.

The different subtopics of this tutorial include:

  • input and output of images (file formats...)
  • image enhancing / denoising
  • image segmentation (separating an image in labeled regions)
  • extraction of geometrical features (edges, lines, spheres, skeleton...)
  • extraction of features for image classification

This tutorial will consist mostly of hands-on examples; no mathematical justification of the algorithms will be given during the tutorial. Besides the main image processing tasks, the tutorial will demonstrate how NumPy advanced features (masks, broadcasting, manipulation of subsets of indices) and scikit-image utilities functions make image processing easier. The tutorial will also address the visualization of image processing results (contours, etc.).

Installation of the scikit-image : see

Requirements :

  • scikit-image >= 0.7
  • numpy >= 1.5
  • scipy >= 0.6
  • ipython