Last updated on 2023-07-26 | Edit this page

Choice of Image Processing Library

This lesson was originally designed to use OpenCV and the opencv-python library (see the last version of the lesson repository to use OpenCV).

In 2019-2020 the lesson was adapted to use scikit-image, as this library has proven easier to install and enjoys more extensive documentation and support.

Choice of Image Viewer

When the lesson was first adapted to use sckikit-image (see above), skimage.viewer.ImageViewer was used to inspect images. This viewer is deprecated and the lesson maintainers chose to leverage matplotlib.pyplot.imshow with the pan/zoom and mouse-location tools built into the Matplotlib GUI. The ipympl package is required to enable the interactive features of Matplotlib in Jupyter notebooks and in Jupyter Lab. This package is included in the setup instructions, and the backend can be enabled using the %matplotlib widget magic.

The maintainers discussed the possibility of using napari as an image viewer in the lesson, acknowledging its growing popularity and some of the advantages it holds over the Matplotlib-based approach, especially for working with image data in more than two dimensions. However, at the time of discussion, napari was still in an alpha state of development, and could not be relied on for easy and error-free installation on all operating systems, which makes it less well-suited to use in an official Data Carpentry curriculum.

The lesson Maintainers and/or Curriculum Advisory Committee (when it exists) will monitor the progress of napari and other image viewers, and may opt to adopt a new platform in future.