Login  Register

issue: works with Fiji graphical interface but not on the command line

Posted by Tamas Karpati on Jun 17, 2021; 8:57pm
URL: http://imagej.273.s1.nabble.com/issue-works-with-Fiji-graphical-interface-but-not-on-the-command-line-tp5024747.html

Dear fellow developers/users,

I was recently recommended to use Fiji and find it very nice, indeed.
Also it looks easy to automatize image analysis but I hit the wall here.

I installed the Interactive Watershed plugin
(I guess my issue is not specific to it, though)
from "https://imagej.net/plugins/interactive-watershed"
and run it from a simple javascript macro (attached):

    ImageJ-linux64 -macro attempt.js

It loads an image --> grayscale --> Watershed (not actually interactively).
The issue is that it cannot find the result image, instead it saves the
grayscale image (its log is attached as CLI.txt).


Interestingly, running the same script from the Plugins/Macros/Run menu
(after File/Close All) I got the real results saved.
Its log is attached as GUI.txt to let you compare to CLI.txt.


I tried whatever I found at
https://imagej.nih.gov/ij/developer/api/ij/module-summary.html
to no avail.

Can you please give me a hint on how to hunt down the results?

Thank you in advance,
  Tamas


My script is listed here as the mailer assumes it is insecure:

// Example script to load a raster image and do the Interactive Watershed.
//
// NOTE:   While it runs when loaded via Plugins/Macros/Run,
//         running from the command line it fails:
//
//           $ ImageJ-linux64 -macro attempt.js
//
//         (probably due to grabbing the wrong window, ie. taking the
//         grayscale image instead of the watershedded one; it is seen
//         from that the wrong window is renamed to "apple").
//
// NOTE-2: I do not think it is related to Interactive Watershed at all.


importClass(Packages.ij.IJ);
importClass(Packages.ij.WindowManager);



function listAllWindowsAndImages( ) {
    IJ.log("\n    Window IDs ("+WindowManager.getWindowCount()+"):");
    var IDlist = WindowManager.getIDList();
    for (var i in IDlist) {
        IJ.log("        "+IDlist[i]);
        if (i == IDlist.length)
            IJ.log(" <-- the last one");
    }
    IJ.log("    Images ("+WindowManager.getImageCount()+"):");
    var IMlist = WindowManager.getImageTitles();
    for (var i in IMlist)
        IJ.log("      "+IMlist[i]+"  ID: "+WindowManager.getNthImageID(i));
    IJ.log("    Non-images:");
    IMlist = WindowManager.getNonImageTitles();
    for (var i in IMlist)
        IJ.log("      "+IMlist[i]);
    IJ.log("\n");
}



IJ.log("Loading an image...");
// from "https://imagej.net/plugins/interactive-watershed":
var imGray = IJ.openImage("figure-hmax-hwatershed-v3.png");
IJ.log("imGray: "+imGray+"\n"); // not now but soon it will be gray
listAllWindowsAndImages();


IJ.log("Showing it...");
imGray.show(); // if missing: the plugin cannot process `imGray'
listAllWindowsAndImages();


var titleGray = "gray"
IJ.log("Turning it to gray and renaming to \""+titleGray+"\"...");
IJ.run("32-bit");
imGray.setTitle(titleGray);
listAllWindowsAndImages();


IJ.log("Performing the main activity (takes a few seconds)...");
IJ.run("H_Watershed","impin=["+titleGray+"] hmin="
    +20+" thresh="+100+" peakflooding="+90
    +" outputmask=true allowsplitting=false");
listAllWindowsAndImages();


//
// look for the result image (the point that fails):
//


// via GUI it retrieves the latest (ie. results) image, but
// via the command line it takes the grayscale (ie. previous) image/window
var imWS = IJ.getImage();
var titleWS = "apple";
imWS.setTitle(titleWS);
IJ.log("imWS: "+imWS+"\n");
listAllWindowsAndImages();


IJ.log("\n###");
if (imWS == imGray) {
    IJ.log("It is probable that THE WRONG IMAGE will be saved!");
} else {
    IJ.log("It is probable that the CORRECT image will be saved.");
}
IJ.log("###\n");


IJ.save(imWS,titleWS+".png");
IJ.log("saved \""+titleWS+".png\".\n");

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html

CLI.txt (1K) Download Attachment
GUI.txt (1K) Download Attachment
figure-hmax-hwatershed-v3.png (790K) Download Attachment