xp1632 / VPE_IP

0 stars 0 forks source link

ImageJ-op vs ImageJ plugins #24

Open xp1632 opened 10 months ago

xp1632 commented 10 months ago

The main difference between ij.op and ij.plugins is that ij.op is a part of the ImageJ2 API, which is a more modern and extensible API for ImageJ, while ij.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.plugins:

In summary, ij.op is a part of the ImageJ2 API and provides a more modern and extensible way to perform image processing operations, while ij.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

xp1632 commented 10 months ago

Part of Fiji's plugins are the older version- ImageJ API

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.

Max-ChenFei commented 10 months ago

How to call the functions from image

Max-ChenFei commented 10 months ago

How to call the functions from image

xp1632 commented 10 months ago

ImageJ plugins bundle

https://github.com/ij-plugins/ij-plugins-bundle image

IJP Toolkit including Segmentation

https://github.com/ij-plugins/ijp-toolkit/wiki/Segmentation image

xp1632 commented 10 months ago

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.

xp1632 commented 9 months ago

Now I know, op is also a form of plugin in ImageJ

xp1632 commented 9 months ago

Another difference I noticed between ops and command plugins :