ImageJ Tutorials and Demo

Welcome to the ImageJ tutorial series. These notebooks offer a hands-on series of lessons for learning ImageJ.

  • For a quick demo of what ImageJ can do, just scroll down!

  • To dive in to the tutorials, click the links below. If ImageJ is new to you, please try the "Using ImageJ" notebooks first.

  • For a thorough academic overview of the ImageJ software stack, including its features, history, motivation and goals, see:

    Rueden CT et al. "ImageJ2: ImageJ for the next generation of scientific image data." BMC Bioinformatics 18:529 (29 November 2017).

  • Learn more about ImageJ at Learn more about Jupyter Notebook at

Feedback is very welcome! Please share your ideas on the ImageJ Forum!

3. Advanced usage

  1. Under the hood: SciJava (incomplete)
  2. Under the hood: ImgLib2
  3. ImgLyb: ImgLib2 + scikit-image
  4. Under the hood: ImageJ (coming later)
  5. Under the hood: SCIFIO (coming later)

4. Advanced extensions

  1. Writing a reusable op (coming later)
  2. Creating a custom service (coming later)
  3. Customizing module execution (coming later)
  4. Creating a SCIFIO plugin (coming later)

ImageJ Demo

In [1]:
#@ImageJ ij

// Behind a firewall? Configure your proxy settings here.

"ImageJ is ready to go."
ImageJ is ready to go.

Load some images

In [2]:
sourcePath = ""
//sourcePath = System.getProperty("user.home") + "/data"
cells = + "/FluorescentCells.jpg")
mandrill = + "/baboon.jpg")
[["cells":cells, "mandrill":mandrill]]
[INFO] Populating metadata
[INFO] Populating metadata
[INFO] Populating metadata
[INFO] Populating metadata