0
votes

I have created a macro that generates results both in the log and results pages. I need a macro that saves both the results and log files into one big excel file and is organized by image name.

    input=getDirectory("Choose Source Directory ");

list = getFileList(input);
for (i = 0; i < list.length; i++)
        rootangle(input, list[i]);

function angle (input,filename){
    open (input + filename);
setTool("angle");
for (i = 0; i < 5; i++){
waitForUser("Select Angle Points");
run("Set Measurements...", "  display redirect=None decimal=3");
//run("Measure");
}

setTool("multipoint");
waitForUser("Count");
run("Set Measurements...", "  display redirect=None decimal=3");
run("Measure");
}

setTool("line");
waitForUser("Measure");
run("Set Measurements...", "  display redirect=None decimal=3");
run("Measure");
}

setTool("freehand");
waitForUser("Distance");
run("Set Measurements...", "  display redirect=None decimal=3");
run("Measure");
}


setTool("polyline");
waitForUser("Draw");
    run("Fit Spline", "straighten"); 
    getSelectionCoordinates(x, y);
     for (i=0; i<x.length; i++)
         print(i+" "+x[i]+" "+y[i]);
}

   dir=getDirectory("image");
   name = "Results"; 
   index = lastIndexOf(name, "\\"); 
   if (index!=-1) name = substring(name, 0, index); 
   name = name + ".xls"; ///can change xls to csv, txt, etc.
   saveAs("Measurements", dir+name); 

close();
}
run("Clear Results");

In this macro the polyline generates many many x,y coordinates for each image that may be bulky for the excel file. These coordinates can be listed on one line in the results excel file.

Is there a way you can add manual annotation to the label in the results page?

Also, is there a way you can add pose measurement functions? Like divide the numbers by 2, etc before creating the excel file?

1

1 Answers

0
votes

I wrote a macro which saves results of ROI multimeasures to the log window. Since I only wanted specific results (the highest three Raw Integrated Densities), I had my code use getResult("Column Label", row) to get the results out, manipulate them, and then print to the log using print("stuff to print"). At the end, I saved the log as a csv, which one can open in excel. Just use commas to separate