Skip to content
Switch branches/tags

PyImageJ: Python wrapper for ImageJ forum Build Status

PyImageJ provides a set of wrapper functions for integration between ImageJ and Python. A major advantage of this approach is the ability to combine ImageJ with other tools available from the Python software ecosystem, including NumPy, SciPy, scikit-image, CellProfiler, OpenCV, ITK and more.


PyImageJ can be installed using conda. Here is how to create and activate a new conda environment with pyimageJ available:

conda create -n pyimagej -c conda-forge pyimagej openjdk=8
conda activate pyimagej

Alternately, it is possible to install pyimagej with pip.

For detailed installation instructions and requirements, see


The first step when using pyimagej is to create an ImageJ gateway. This gateway can point to any official release of ImageJ or to a local installation. Using the gateway, you have full access to the ImageJ API, plus utility functions for translating between Python (NumPy, xarray, pandas, etc.) and Java (ImageJ, ImgLib2, etc.) structures.

For instructions on how to start up the gateway for various settings see

Here is an example of opening an image using ImageJ and displaying it:

# Create an ImageJ gateway with the newest available version of ImageJ.
import imagej
ij = imagej.init()

# Load an image.
image_url = ''
jimage =

# Convert the image from ImageJ to xarray, a package that adds
# labeled datasets to numpy (
image =

# Display the image (backed by matplotlib)., cmap='gray')

For instructions on how to do certain tasks, see

Getting Help

The Scientific Community Image Forum is the best place to get general help on usage of pyimagej, ImageJ, and any other image processing tasks. Bugs can be reported to the pyimagej GitHub issue tracker.


All contributions, reports, and ideas are welcome. Contribution is done via pull requests onto the pyimagej repository.

Most development discussion takes place on the pyimagej GitHub repository. You can also reach the developers at the pyimagej gitter.