Add waitForUser and wand to macro

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view

Add waitForUser and wand to macro

Mark Matsche
I have the following macro (below) to analyze a batch of images in a folder.
Initially, I was using a higher magnification and tissues filled the field
of view.  Now I'm using a lower magnification and need to select the tissue
in the field of view before thresholding and doing the analysis.  The wand
tool works well (50% tolerance) to quickly select tissue.  

What I would like is for an additional step to this macro to allow me to use
the wand tool to select the tissue before converting to 8 bit and
thresholding.  Such as
1)ask for folder (choose directory)
2)open image from folder
3)allow the operator use the wand tool (waitforuser)
5)threshold (waitforuser)
6)analyze particles
7)store results
8)continue loop until all images have been processed

Can someone help by adapting this macro script to accomplish this? I added a
sample image at the end.

macro "mac agg" {dir = getDirectory("Choose Source Directory");
  list = getFileList(dir);
  for (i=0; i<list.length; i++) {
     waitForUser(&quot;Adjust threshold, then click 'OK' &quot;);
  run(&quot;Analyze Particles...&quot;, &quot;size=50-Infinity display
exclude include summarize&quot;);
  run(&quot;Set Measurements...&quot;, &quot;area mean min
  if (nResults != 0){
        for (i=0; i&lt;nResults; i++){
                resLabel = getResultLabel(i);
                if (indexOf(resLabel, &quot;.tif&quot;) > 0) {
                        resLabel = substring (resLabel, 0,
lastIndexOf(resLabel,".tif")); // remove the ".tif" in the text string
                        n = lengthOf(resLabel); // number of characters in
the text string
                        LBL = substring (resLabel, 0, n-2); // remove the
last 2 characters to get the label
                        section = substring (resLabel, n-1, n); // remove
all text in label except last character
                        setResult("Label", i, LBL); // set the text string
for new label
                        setResult("Section", i, section); // set the text
string for section
} } else {
        showMessage("No Result found in result table");
  saveAs("Measurements", "C:\\Documents and


Sent from:

ImageJ mailing list:
Reply | Threaded
Open this post in threaded view

Re: Add waitForUser and wand to macro

Mark Matsche
As a follow up, I'm not interested in the area of individual particle sizes.
I need the %area of all particles primarily but it would be useful to know
the.  Summary results gives me the total area of all particles and %area but
not the area of the tissue.  Since I now need to select the tissue section
(using wand tool) can I get the summary results to include the area of the
tissue now defined by the wand?  I know it can be calculated from the given
information, but was curious if it can be added to the summary results.


Sent from:

ImageJ mailing list: