Open xp1632 opened 7 months ago
By searching BlackToWhiteTrackBackground
in JIPipe project
We found that the algorithms are registered in ImageAlgorithmsExtension.java
,which locates inE:\jipipe\jipipe-ij-algorithms\src\main\java\org\hkijena\jipipe\extensions\imagejalgorithms\ImageJAlgorithmsExtension.java
for example:
private void registerThresholdAlgorithms() {
registerNodeType("ij1-threshold-manual2d-color-hsb", ManualHSBThreshold2DAlgorithm.class, UIUtils.getIconURLFromResources("actions/segment.png"));
registerNodeType("ij1-threshold-manual2d-color-rgb", ManualRGBThreshold2DAlgorithm.class, UIUtils.getIconURLFromResources("actions/segment.png"));
...
At the bottom of this file, we have a method:
@Override
public String getDependencyId() {
return "org.hkijena.jipipe:imagej-algorithms";
}
}
- By searching this method `getDependencyId`
-
![image](https://github.com/Max-ChenFei/VPE_IP/assets/8528052/818b45ae-ebd7-4197-be2f-e4f28c51219e)
- we found this method is used in various situation:
- In `JIPipe.java`:
- We have the Valid Extension check and log error information
// Validate ID
if (!isValidExtensionId(extension.getDependencyId())) {
System.err.println("Invalid extension ID: " + extension.getDependencyId() + ". Please contact the developer of the extension " + extension);
progressInfo.log("Invalid extension ID: " + extension.getDependencyId() + ". Please contact the developer of the extension " + extension);
} else {
if (!allJavaExtensionsByID.containsKey(extension.getDependencyId())) {
allJavaExtensionsByID.put(extension.getDependencyId(), extension);
} else {
System.err.println("Duplicate extension ID: " + extension.getDependencyId() + ". Please contact the developer of the extension " + extension + " or check your ImageJ folder");
progressInfo.log("Duplicate extension ID: " + extension.getDependencyId() + ". Please contact the developer of the extension " + extension + " or check your ImageJ folder");
}
}
---
- This is a part in class `initialize`, and I think it's the dependency check of JIPipe when we first install it
System.err.println
logService.warn("Unable to read " + dbPath);
to show information about exceptionsprogressInfo.log("No ImageJ update site check is applied.");
At first glance, just as we thought earlier, JIPipe only takes the imageJ plugins that has standard input
and output
:
which is ImageJ1's marco
as they show in the papers' picture:
IJ2 Ops
which also have standard input
and output
change parameters of the plugin
the output image can also be displayed with ImageJ UI
Parameter
:
I have the following findings:
1. dependency check for weka segmentation
2. ImageJ1 marco:
Conclusion: Just as we predicted, JIPipe only support the plugins that already fit our guideline, which is the ImageJ1 Marco and ImageJ2 Op that has standard input and output interface.