This page summarizes translation of basic operations of ImageJ1 and ImageJ2 API. Based on the work of Robert Haase
, Scientific Computing Facility, MPI-CBG Dresden.
Starting ImageJ | | ImageJ ij = new net.imagej.ImageJ();
ij.ui().showUI();
|
Show images | imp is an ImagePlus object
| ImageJFunctions.show(imp);
ImageJFunctions.wrap(imp,"Image").show();
|
Retrieve an active image object | ImagePlus imp = IJ.getImage();
| Script parameter (the same for Dataset , ImagePlus , etc.): In Java code: @Parameter
private Img image;
Using ImageDisplayService : Dataset image = ij.imageDisplay().getActiveDataset();
|
Open an image file | IJ.openImage() returns an ImagePlus object without showing.
ImagePlus imp = IJ.openImage(urlOrFilePath);
imp.show();
IJ.open() automatically shows the image without returning ImagePlus .
IJ.open(urlOrFilePath);
ImagePlus imp = IJ.getImage();
| Using IOService : Object image = ij.io().open(urlOrFilePath);
Using DatasetIOService (for type safety): Dataset image = ij.scifio().datasetIO().open(urlOrFilePath);
|
Save an image file | IJ.saveasTiff(imp, "/path/to/image.tif")
| Using IOService : ij.io().save(dataset, "/path/to/image.tif");
Using DatasetIOService : ij.scifio().datasetIO().save(dataset, "/path/to/image.tif");
|
Convert image types | Convert from ImageJ2 Img object to ImageJ1 ImagePlus object: ImagePlus imp = ImageJFunctions.wrap(img,"Title");
| Convert from ImageJ1 ImagePlus object to ImgLib2 Img object: Img<T> realImg = ImageJFunctions.wrapReal(imp);
Img<FloatType> floatImg = ImageJFunctions.convertFloat(imp);
Img<FloatType> realImg2 = ImageJFunctions.wrap(imp);
|
Show regions | | Img<BitType> mask; // = ...
ImagePlus maskImp =ImageJFunctions.wrap(mask, "mask");
// threshold the mask to get an ROI
ImageProcessor imageProcessor = maskImp.getProcessor();
imageProcessor.setThreshold(128,128,ImageProcessor NO_LUT_UPDATE);
Roi roi = new ThresholdToSelection().convert(imageProcessor);
imagePlus.setRoi(roi);
|
Run plugins | IJ.run(imagePlus,"Normalisation","");
| ij.command().run(ImageNormalizerIJ2Plugin.class, true, "input", img, "ij", ij);
|
Define plugins | public class ImageNormalizerPlugin implements PluginFilter {
...
}
In resources/plugins.config : Plugins>Filtering, "Normalisation", NormalizerPlugin
| @Plugin(type = Command.class, menuPath = "Plugins>Normalization")
public class ImageNormalizerIJ2Plugin implements Command {
...
}
|
See also
https://github.com/mpicbg-scicomp/ij2course-images/blob/master/slides/ij_legacy_cheetsheet.pdf