Wednesday 11 a.m.–12:30 p.m.

Image processing with scikit-image

Emmanuelle Gouillart, Juan Nunez-Iglesias

Audience level:


From telescopes to satellite cameras to electron microscopes, scientists are producing large datasets of images to be processed and analyzed. This tutorial will introduce image processing using the "images as numpy arrays" abstraction, run through various fundamental image analysis operations (filters, morphology, segmentation), and finally complete one or two more advanced real-world examples.


Image analysis is central to a boggling number of scientific endeavors. Google needs it for their self-driving cars and to match satellite imagery and mapping data. Neuroscientists need it to understand the brain. NASA needs it to map asteroids( and prevent catastrophes. Attendees will leave this tutorial confident of their ability to start extracting information from their images in Python.

scikit-image [VanDerWalt2014] is a multipurpose image processing package based on the NumPy array container. The package addresses a large variety of image processing tasks, such as image filtering, exposure manipulation, segmentation in order to label regions of the image, etc. Several standard tools of scikit-image are very common and can be found in other image processing libraries, such as automatic thresholding with Otsu method, or basic mathematical morphology operations. However, scikit-image also implements a few algorithms that are closer to the state of the art, such as total variation denoising, superpixel segmentation or random walker segmentation.

This tutorial will strive to make the audience familiar with a typical workflow for image processing with scikit-image. After a brief introduction to the idea that images are just arrays and vice versa, we will introduce fundamental image analysis operations: - manipulations of NumPy arrays useful for image processing - input/output: reading and saving to image files - colorspaces and image data types - a selection of topics among image filtering, exposure manipulation, restoration and denoising, image segmentation, features extraction, and measurements on labeled regions. - visualization of images and outputs of image processing operations

The tutorial will be mostly hands-on, as attendees will be expected to code along during the tutorial. Both simple operations as well as more extended exercises will be proposed. Attendees will need a working knowledge of numpy arrays, but no further knowledge of images and image processing.

Installation: we recommend that attendees install a recent (0.11 for example) version of scikit-image. Most examples will work with previous versions of scikit-image as well, but since the package is evolving quickly, it is better if attendees can install 0.11 to make the most of the tutorial. See for instructions on installation.


scikit-image website:

[VanDerWalt2014] VAN DER WALT, Stefan, SCHĂ–NBERGER, Johannes L., NUNEZ-IGLESIAS, Juan, et al. scikit-image: image processing in Python. PeerJ, 2014, vol. 2, p. E453.