Benötigen Sie Hilfe bei der Verarbeitung geöffneter Bilder in ImageJ

Benötigen Sie Hilfe bei der Verarbeitung geöffneter Bilder in ImageJ

Ich habe ein Makro erstellt (basierend auf verschiedenen, die ich gesehen habe), das die Partikelbereiche in meinem Bild analysiert, die Spalte „Bereich“ im Ergebnisfenster automatisch in meine Zwischenablage kopiert und ein Fenster anzeigt, in dem ich gefragt werde, ob ich alle Fenster schließen möchte.

Ich würde gerne wissen, ob es möglich ist, dieses Makro auf in ImageJ geöffnete Bilder anzuwenden und alle Ergebnisse (meistens Flächen) in einem einzigen Ergebnisfenster zu erhalten. Ich kann die Stapelverarbeitungsfunktion nicht verwenden, da mein Ordner Bildsätze enthält, die getrennt voneinander analysiert werden müssen (verschiedene Mikroorganismenstämme), um die Ergebnisse für jeden Stamm separat zu erhalten.

Hier ist mein aktuelles Makro. Ich weiß, es ist verdammt hässlich, aber es funktioniert ziemlich gut:

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");
    }
}

Antwort1

Am Ende habe ich es geschafft, hier ist der Code, falls jemand interessiert ist:

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");
    }
}

verwandte Informationen