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.