Posted by
Joachim Wesner on
Jan 31, 2008; 3:22pm
URL: http://imagej.273.s1.nabble.com/Help-with-ImageJ-macro-code-tp3697312p3697325.html
Hi there,
I had a similar experience that somehow, when using a mcro together with
plugins, the "front" window ist not always identical with the "active"
resp. "selected" window.
I did not look into that issue further, but also changed my code to use
unique image IDs similar to what Justin suggests and from that on it worked
as expected.
Mit freundlichen Grüßen / Best regards
Joachim Wesner
Projektleiter Optik Technologiesysteme
Leica Microsystems CMS GmbH | GmbH mit Sitz in Wetzlar | Amtsgericht
Wetzlar HRB 2432
Geschäftsführer: Dr. Stefan Traeger | Dr. Wolf-Otto Reuter | Dr. David Roy
Martyr | Colin Davis
[hidden email]
Gesendet von:
ImageJ Interest An
Group
[hidden email]
<
[hidden email]. Kopie
GOV>
Thema
Re: Help with ImageJ macro code
31.01.2008 04:43
Bitte antworten
an
ImageJ Interest
Group
<
[hidden email].
GOV>
I do not know why your images get renamed, but I think the easiest way
to solve this is to use the getImageID() function, which returns a
unique ID for the active image, and then use the selectImage(id)
function to activate the image later. It has a few benefits: it's
faster, the IDs are unique, and the IDs don't change throughout macro
execution.
I think you can just replace the rename() and selectWindow()
statements you have now, and it should work. However, I believe
imageCalculator("or", img1, img2) does the same thing as all of those
select-copy-select-pastes, so you might use that in order to make the
code more succinct.
Justin
On 1/30/08, crieken <
[hidden email]> wrote:
> Hi all, I hope this is an appropriate place for this question. I'm
writing
> a
> macro to put together a mask from three images with multiple channels. I
am
> making progress on the macro, but as I test it, I'm running into a
problem.
> When the 402nm image is opened, the windows "Z" and "W" are named
properly.
> When the 488nm image is opened, the windows "A", "C", and "D" are named
> fine, but the "Z" and "W" windows are renamed to "1". This messes up the
> creation of the mask and will mess up the analysis that will come further
> down the line. I have even tried saving each image individually, but the
> names still get reset. This only occurs occasionally, though. Does
anyone
> have any ideas? I can email the original images if it would help.
Thanks
> in advance! BTW, this may not be the most elegant code, but go easy, I'm
a
> beginner :confused:.
> Chris
>
> //Selects directory to save files to
> dir = getDirectory("Select save directory");
>
> //Prompt for 402nm image
> var violet = "Open a 402nm image";
> requires("1.34m");
> title = "Untitled";
> width=512; height=512;
> Dialog.create("402nm");
> Dialog.addMessage(violet);
> Dialog.show();
>
> //Run ICS opener
> run("ICS/IDS... ");
>
> //Closes 402 unassigned, 402 background, and renames channel 2 as "Z" and
> channel 1 as "W"
> close();
> close();
> rename("Z");
> run("Put Behind [tab]");
> rename("W");
>
> //Prompt for 488nm image
> var blue = "Open a 488nm image";
> requires("1.34m");
> title = "Untitled";
> width=512; height=512;
> Dialog.create("488nm");
> Dialog.addMessage(blue);
> Dialog.show();
>
> //Run ICS opener
> run("ICS/IDS... ");
>
> //Converts stack to images
> run("Convert Stack to Images");
>
> //Closes 488 unassigned, 488 background, E_488 and renames channel 3 as
"D",
> channel 2 as "C", and channel 1 as "A"
> close();
> close();
> close();
> rename("D");
> run("Put Behind [tab]");
> rename("C");
> run("Put Behind [tab]");
> rename("A");
>
> //Prompt for 561nm image
> var green = "Open a 561nm image";
> requires("1.34m");
> title = "Untitled";
> width=512; height=512;
> Dialog.create("561nm");
> Dialog.addMessage(green);
> Dialog.show();
>
> //Run ICS opener
> run("ICS/IDS... ");
>
> //Converts stack to images
> run("Convert Stack to Images");
>
> //Closes 561 unassigned, 561 background, and renames channel 3 as
"gamma",
> channel 2 as "F", and channel 1 as "E"
> close();
> close();
> rename("gamma");
> run("Put Behind [tab]");
> rename("F");
> run("Put Behind [tab]");
> rename("E");
>
> //Create a mask
> run("Duplicate...", "title=Mask");
> run("Paste Control...");
> setPasteMode("OR");
> selectWindow("F");
> run("Copy");
> selectWindow("Mask");
> run("Paste");
> selectWindow("gamma");
> run("Copy");
> selectWindow("Mask");
> run("Paste");
> selectWindow("D");
> run("Copy");
> selectWindow("Mask");
> run("Paste");
> selectWindow("C");
> run("Copy");
> selectWindow("Mask");
> run("Paste");
> selectWindow("A");
> run("Copy");
> selectWindow("Mask");
> run("Paste");
> selectWindow("Z");
> run("Copy");
> selectWindow("Mask");
> run("Paste");
> selectWindow("W");
> run("Copy");
> selectWindow("Mask");
> run("Paste");
>
> --
> View this message in context:
>
http://www.nabble.com/Help-with-ImageJ-macro-code-tp15195190p15195190.html> Sent from the ImageJ mailing list archive at Nabble.com.
>
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit
http://www.messagelabs.com/email
______________________________________________________________________