Necesita ayuda para procesar imágenes abiertas en ImageJ

Necesita ayuda para procesar imágenes abiertas en ImageJ

Creé una macro (basada en diferentes que he visto) que analiza áreas de partículas en mi imagen, copia automáticamente la columna Área en la ventana de resultados a mi portapapeles y muestra una ventana que me pregunta si quiero cerrar todas las ventanas.

Me gustaría saber si es posible aplicar esta macro a imágenes abiertas en ImageJ y obtener todos los resultados (principalmente Área) en una única ventana de resultados. No puedo usar la función de procesamiento por lotes porque mi carpeta contiene conjuntos de imágenes que deben analizarse por separado (diferentes cepas de microorganismos) para obtener los resultados de cada cepa por separado.

Aquí está mi macro en este momento, sé que es muy fea pero funciona bastante bien:

run("8-bit");
run("Threshold...");
waitForUser;
getThreshold(lower,upper);
if (lower==-1)
    exit("Threshold was not set");
run("Convert to Mask");
run("Fill Holes");
run("Set Scale...", "distance=2.87 known=1 unit=µm global");
run("Analyze Particles...", "size=30-Infinity display exclude add");
close();
closeWin("ROI Manager");
closeWin("Threshold");
closeWin("Log");
String.resetBuffer;
  for (i=0; i<nResults; i++)
      String.append(getResult("Area", i) + "\n");
  String.copy(String.buffer);
waitForUser("Work done", "WORK DONE: Close all windows?");
if (isOpen("Results")) {
         selectWindow("Results"); 
         run("Close" );

function closeWin(winName)
{
    if (isOpen(winName)) 
    {
        selectWindow(winName);
        run("Close");
    }
}

Respuesta1

Al final pude hacerlo, aquí está el código por si a alguien le interesa:

for (i=1; i<=nImages; i++) {
    selectImage(i);
    run("8-bit");
    run("Threshold...");
    waitForUser;
    getThreshold(lower,upper);
    if (lower==-1)
        exit("Threshold was not set");
    run("Convert to Mask");
    run("Fill Holes");
    run("Set Scale...", "distance=2.87 known=1 unit=µm global");
    run("Analyze Particles...", "size=30-Infinity display exclude add");
}
close("*");
closeWin("ROI Manager");
closeWin("Threshold");
closeWin("Log");
String.resetBuffer;
  for (i=0; i<nResults; i++)
      String.append(getResult("Area", i) + "\n");
  String.copy(String.buffer);
waitForUser("Work done", "WORK DONE: Close all windows?");
if (isOpen("Results")) {
         selectWindow("Results"); 
         run("Close" );

function closeWin(winName)
{
    if (isOpen(winName)) 
    {
        selectWindow(winName);
        run("Close");
    }
}

información relacionada