http://imagej.273.s1.nabble.com/Summarize-table-not-writing-in-macro-tp5004888p5004915.html
> Hi Scott,
>
> Since you asked for guidance, here are a couple of suggestions, followed
> by a whole batch process macro based on your code that runs and creates a
> summary table for me on some test images. Full disclosure, I am being a
> bit lazy and just using a folder full of tif files, so I can't comment on
> any problems with the .zvi file opener.
>
> >On Friday, September 20, 2013 9:04 PM Scott Chamberlain wrote:
> >Subject: Summarize table not writing in macro
>
> >Hello all,
>
> >I have this macro below that works fine on a single image, but doesn't
> work
> >in batch mode. I want to use the macro to process a single folder at a
> time
> >of images with .zvi extension. I'd appreciate any guidance on where to
> >look for the problem!
>
> >Thanks!
> >Scott Chamberlain
> >Simon Fraser University
>
> >macro "countem [q]" {
> > title = getTitle;
>
> If you are in batch mode, there won't be a file open at this point, so
> there isn't a way to get a title from it. Best to move this downstream a
> little.
>
> > input = "/path1/";
> > output = "/path2/";
>
> The way this is written I'm assuming you want to "hard code" in your
> filepaths. This is a totally valid. You could also choose to go with
>
> input = getDirectory("Choose a Directory to PROCESS");
> list = getFileList(input);
> output = getDirectory("Choose a Directory for SAVING");
>
> to make the macro a little more flexible. This will direct the user (you)
> to click a folder to process and another to save to each time the macro is
> run. This way you won't have to modify the code for each run. It's up to
> you.
>
> > function doit(input, output, title) {
> > run("ZVI Reader", "open="+intput+title)
>
> Watch out for typos, they will wreck your code :)
>
> > run("Subtract Background...", "rolling=100");
> > run("Invert");
> > setAutoThreshold("Yen");
> > run("Convert to Mask");
> > run("Watershed");
> > run("Set Measurements...", "slice area count mean circularity
> redirect=None");
> > run("Analyze Particles...", "size=40-120 circularity=0.50-1.00
> show=summarize");
>
> This all looks lovely until this line, and this may be why you get no
> summary table in batch mode. My Fiji keeps telling me summarize is not a
> valid choice for show. I think you want run("Analyze Particles...",
> "size=40-120 circularity=0.50-1.00 show=Nothing summarize");
>
>
> > saveAs("text", output+title+".txt");
> > close();
> > }
>
> > setBatchMode(true);
> > list = getFileList(input);
> > for (i = 0; i < list.length; i++)
> > doit(input, output, list[i]);
> > setBatchMode(false);
> >}
>
> The batch mode bit needs to move up in your code. Also, not sure why you
> have the line for setting batch mode back to false.
>
> Here is my code:
>
> -----------begin----------------
>
> input = "/path1/";
> list = getFileList(input);
> output = "/path2/";
>
> setBatchMode(true);
> for (i=0; i<list.length; i++) {
> path = input+list[i];
> showProgress(i, list.length);
> if (!endsWith(path,"/")) open(path);
> if (nImages>=1) {
>
> title=getTitle();
>
> run("Subtract Background...", "rolling=100");
> run("Invert");
> setAutoThreshold("Yen");
> run("Convert to Mask");
> run("Watershed");
> run("Set Measurements...", "slice area count mean circularity
> redirect=None");
> run("Analyze Particles...", "size=40-120 circularity=0.50-1.00
> show=Nothing summarize");
> saveAs("text", output+title+".txt");
> close();
>
> }
> }
>
> -----------end------------------
>
> I hope this helps you with your troubleshooting. Good luck!
>
> Best,
> Christine
>
> --------------------------------------------
> Christine Labno, Ph.D.
> Asst. Technical Director
> Light Microscopy Core
> University of Chicago
> Office of Shared Research Facilities
> KCBD 1250 900 E. 57th St.
> (773) 834-9040 (phone)
>
>
> --
> ImageJ mailing list:
http://imagej.nih.gov/ij/list.html>