Posted by
Christine Labno on
Aug 06, 2008; 6:46pm
URL: http://imagej.273.s1.nabble.com/get-current-image-filename-directory-for-macros-tp3695447p3695448.html
Hi Dan,
I think the commands you want are below. For a list of other
built in macro commands, look here:
http://rsb.info.nih.gov/ij/developer/macro/functions.html dir = getDirectory("image");
will get the directory of the current image and assign it to
the variable "dir"
name=getTitle;
will get the name of the current image and assign it to the
variable "name"
saveAs("Text", dir);
will save the .txt file to the same directory as the current
image, without a name.
path = dir+name;
will create a path to the current directory and lead the
command saveAs("Text", path); below to include the current
image name. For some reason, saveAs("Text", dir+name); will
not work. Maybe someone more experienced can explain why.
So your macro should read:
dir = getDirectory("image");
name=getTitle;
path = dir+name;
//run commands, etc. here with variables substituted in (i.e.
//target=name).
saveAs("Text", dir); OR
saveAs("Text", path);
Best,
Christine
---- Original message ----
>Date: Tue, 5 Aug 2008 18:08:56 -0400
>From: Dan Siegal-Gaskins <
[hidden email]>
>Subject: get current image filename/directory for macros
>To:
[hidden email]
>
>Hello all,
>
>After a couple of years of playing with ImageJ, I'm only now
starting to
>write macros. What I have is a stack of 9 images, and I'd
like to:
>
>1. run the Image CorrelationJ plugin on the first slice
>2. save the output to a text file
>3. skip to the next slice
>4. run the Image CorrelationJ plugin
>5. go back to step 2 and loop through until the end of the stack
>
>Using the macro recorder, the command for running Image
CorrelationJ is:
>
>--------------
>run("Image CorrelationJ 1o", "target=filename.tif
source=filename.tif
>correlation=[Fix slide (Source)] statistic=Average
markers=Circle local=1
>decimal=2");
>--------------
>
>So my first question is, how do I replace filename.tif with
the a variable
>name of the current active image? I'm assuming there is some
'get filename'
>command that I could run, and then I could assign the result
to a variable
>that I could use in the above statement. After that I need
to save the
>data. The macro recorder shows this as:
>
>--------------
>saveAs("Text", "active directory/foo.bar");
>--------------
>
>Similar to my first question, how do I use a variable for the
directory
>which I can assign the directory to be the current working
directory?
>
>Thanks,
>Dan