Open xp1632 opened 10 months ago
Fiji builds on top of the ImageJ2 core, which is licensed under the permissive BSD 2-Clause license.
Fiji also includes the original ImageJ, which is free of copyright.
How to call the functions from
How to call the functions from
https://github.com/ij-plugins/ij-plugins-bundle
Some ops are extended ops:
https://github.com/imagej/tutorials/blob/master/notebooks/2-Extending-ImageJ/2-Ops.ipynb
which is not in the OpService class ,so we could not run it simply by
ij.op().filter().gauss
we need to run it as an extended Ops from third party plugins package:
Img<FloatType> output = ij.op().run("trainableSegmentation", img, classifierPath, classes, featureChannels, sigma, threshold);
for example, I used the ops.run() method to run the DefaultDetectRidges operation from the net.imagej.ops.segment
package, which is not a built-in operation provided by the OpService class.
Now I know, op is also a form of plugin in ImageJ
Another difference I noticed between ops and command plugins :
op
is designed to be ImageJ UI- free
op
always offers output
parameters with type ItemIO.OUTPUT
output
to print/show in the jupyter or somewherewhile some command plugins
have no output
parameters
ij.ui
defined in their plugin
The main difference between
ij.op
andij.plugins
is thatij.op
is a part of the ImageJ2 API, which is a more modern and extensible API for ImageJ, whileij.plugins
is a part of the original ImageJ API, which is less flexible and more limited in its capabilities. Here are some more details:ij.op
:ij.op
is a part of the ImageJ2 API, which is a more modern and extensible API for ImageJ.ij.op
provides a set of interfaces and classes for performing image processing operations in a flexible and extensible way.ij.op
is designed to work with the ImgLib2 data model, which provides a more flexible and efficient way to represent images.ij.op
is more modular and allows for more fine-grained control over the processing pipeline.ij.op
is more suitable for advanced users and developers who need to perform complex image processing tasks.ij.plugins
:ij.plugins
is a part of the original ImageJ API, which is less flexible and more limited in its capabilities.ij.plugins
provides a set of pre-built plugins for performing common image processing tasks, such as filtering, thresholding, and segmentation.ij.plugins
is designed to work with the ImagePlus data model, which is less flexible and efficient than the ImgLib2 data model.ij.plugins
is less modular and provides less fine-grained control over the processing pipeline.ij.plugins
is more suitable for casual users who need to perform simple image processing tasks.In summary,
ij.op
is a part of the ImageJ2 API and provides a more modern and extensible way to perform image processing operations, whileij.plugins
is a part of the original ImageJ API and provides a set of pre-built plugins for common image processing tasks.Citations: [1] https://forum.image.sc/t/structuring-ij-developer-wiki/28 [2] https://imagej.net/develop/ij1-plugins [3] https://www.cas.miamioh.edu/~meicenrd/anatomy/Ch14_IndependentInvestigation/ImageJ/ij-docs/ij-docs/developer/api/ij/plugin/class-use/PlugIn.html [4] https://imagej.net/ij/developer/api/ij/ij/plugin/tool/package-use.html [5] https://ij-plugins.sourceforge.net/plugins/toolkit.html [6] https://ij-plugins.sourceforge.net