Liebe Pilzfreunde,
da ich selbst Linux nutze und man mich mit Windows jagen kann, habe ich mich vor einiger Zeit daran gesetzt, eine gut funktionierende linux-kompatible Alternative zur Sporenmessung zu schreiben. Sie basiert auf Fiji und ist so weit automatisiert wie möglich. Ich nutze sie mittlerweile seit einigen Monaten und bin damit sehr zufrieden. Ich habe mich bemüht, die Dokumentation so ausführlich und beginnerfreundlich wie irgend möglich zu gestalten, sodass Interessierte nicht vorzeitig entmutigt werden. Bei Fragen oder Problemen könnt ihr jederzeit unter diesen Post schreiben; ich bemühe mich, euch zeitnah zu antworten.
Das Coden und Dokumentieren war sehr viel Arbeit, deshalb hoffe ich, dass sie bei der einen oder dem anderen hier im Pilzforum auf Interesse stößt.
Bevor wir loslegen, möchte ich mich ganz herzlich bei boccaccio bedanken! Björn hat mir nicht nur viel über Pilze beigebracht, sondern mich auch beim Prozess begleitet, seine Ideen eingebracht und ermutigt, das Projekt fortzuführen. Ohne ihn wäre das Pilzmikroskopie-Paket nie zustande gekommen.
Inhaltsverzeichnis
- 1. Fiji installieren
- 2. Pilzmikroskopie-Paket installieren
- 3. Kalibrierung einrichten
- 4. Grundlegendes Messen in Fiji
- 5. Die Pilzmikroskopie-Scripts
- 6. Effizienter Workflow mit Makros
- 7. Tipps und häufige Fehler
- 8. Schnellübersicht
1. Fiji installieren
1.1. Download Windows
Fiji erfordert keine klassische Installation. Stattdessen handelt es sich um einen portablen Ordner, der die ausführbare Datei und alle Abhängigkeiten enthält. Solange dieser Ordner vorhanden ist, lässt sich Fiji per Doppelklick starten – ohne Setup-Assistent, ohne Einträge in der Registry.
Ein praktischer Vorteil: Der gesamte Ordner lässt sich auf einen USB-Stick kopieren und an einem anderen Rechner starten, inklusive aller eigenen Konfigurationen.
- Die aktuelle Version von fiji.sc herunterladen: unter Latest Downloads das passende Betriebssystem und die Prozessorarchitektur wählen (Windows: 64-Bit / x86 → Downloadserver in Europa bevorzugen).
- Die heruntergeladene
.zip-Datei (~600 MB) per Rechtsklick → Alle extrahieren entpacken. - Den entstandenen
Fiji-Ordner an einen dauerhaften Ort verschieben – nicht im Downloads-Ordner belassen, da dieser leicht versehentlich geleert wird. Empfehlung:%USERPROFILE%\Fiji(Windows) bzw.~/Fiji(Linux/macOS). - Die Date
i ImageJ-win64.exe(Windows) per Doppelklick starten. Bei der Windows-Sicherheitswarnung auf Weitere Informationen → Trotzdem ausführen klicken.
Optional lässt sich die .exe an die Taskleiste anheften oder eine
Desktop-Verknüpfung anlegen.
1.2. Download Linux
1.2.1. Ubuntu
Ubuntu-User folgen der Windows-Anleitung und downloaden die aktuelle Version (in der Regel x86-64 – außer man hat einen ARM-Prozessor).
1.2.2. Arch Linux
Zur Installation lässt sich pacman, pamac oder yay nutzen, um Fiji zu installieren, das Paket heißt fiji-bin. Wichtig ist, dass man den Zugriff vom chaotic AUR freigeschaltet hat. Hier wird Fiji im Gegensatz zu den anderen Installationswegen fest installiert (meist unter /opt/fiji).
2. Pilzmikroskopie-Paket installieren
Zunächst downloadet man das Paket über diesen Link. Wer git nutzt, kann auch clonen:
Das Pilzmikroskopie-Paket ist ein Ordner mit fünf JavaScript-Scripts, der installiert wird, indem man ihn in den Scripts-Ordner von Fiji legt:
Den Ordner
Pilzmikroskopie/in das Unterverzeichnisscripts/der Fiji-Installation verschieben (per Drag & Drop oder Dateimanager), sodass die Datei-Struktur so aussieht:- Fiji neu starten. Im Menü erscheint jetzt ein neuer Reiter Pilzmikroskopie mit allen fünf Scripts.
3. Kalibrierung einrichten
Damit Fiji Abstände in Mikrometern (statt Pixeln) ausgibt, muss für jedes verwendete Objektiv die Kalibrierung (Pixel pro µm) hinterlegt werden.
3.1. Kalibrierung messen
- Für jedes vorhandene Objektiv ein Bild mit dem Objektmikrometer aufnehmen und in Fiji öffnen (per Drag & Drop oder
Datei → Öffnen). - Das Straight Line Tool auswählen (fünftes Symbol von links in der Werkzeugleiste).
- Eine Linie über eine bekannte Strecke ziehen (z. B. von Balkenmitte zu Balkenmitte = 10 µm-Schritte → 5 Balken = 50 µm).
Analyze → Set Scaleaufrufen. Fiji zeigt die gemessene Pixelzahl.- Known Distance: die bekannte Distanz eintragen (z. B.
50) - Unit of Length:
µmeingeben (Alt Gr + M drücken, dann M → µm) - Global aktivieren, damit die Kalibrierung für alle offenen Bilder gilt.
- den Wert Pixel/µm notieren.
- Known Distance: die bekannte Distanz eintragen (z. B.
3.2. Kalibrierung dauerhaft als Makro speichern
Ohne weitere Maßnahmen geht die Kalibrierung beim Schließen von Fiji verloren. Um sie dauerhaft zu speichern, werden Makros in der StartupMacros-Datei hinterlegt; so wird sie bei jedem Start neu geladen.
3.2.1. Datei öffnen
Der Fiji-Pfad lautet Fiji/macros/StartupMacros.fiji.ijm. Diese Datei öffnen wir mit einem beliebigen Texteditor.
3.2.2. Makros eintragen
Am Ende der Datei folgende Makros einfügen und die distance-Werte an die eigene Messung anpassen – bei mir bspw.
macro "Set scale for 10x objective [F1]" {
run("Set Scale...", "distance=4.6672 known=1 unit=µm global");
}
macro "Set scale for 40x objective [F2]" {
run("Set Scale...", "distance=18.8554 known=1 unit=µm global");
}
macro "Set scale for 100x objective [F3]" {
run("Set Scale...", "distance=45 known=1 unit=µm global");
}
Alles anzeigen
Der Wert distance gibt an, wie viele Pixel einem Mikrometer entsprechen und wurde gerade von uns notiert. Wer möchte, kann auch die Tastenkürzel in eckigen Klammern (F1, F2, F3) nach Wunsch umlegen; meine Belegung folgt der Logik: kleinste F-Taste = kleinste Vergrößerung. Wichtig: Damit die Kalibrierung angewendet werden kann, muss mindestens ein Bild geöffnet sein; Set Scale ist sonst nicht verfügbar.
3.2.3. Änderungen speichern und testen
- Änderungen in
StartupMacrosspeichern. - Fiji neu starten.
- Ein Bild öffnen → passende F-Taste drücken → Fiji zeigt Maße in µm links über dem Bild an.
3.3. Autorun-Script (optionale Automatisierung)
Im Ordner Fiji/macros/AutoRun/ können .ijm-Dateien abgelegt werden, die beim Start von Fiji automatisch ausgeführt werden. Ein nützliches Autorun-Script führt beim Laden des ersten Bildes folgende Schritte durch:
- Es wartet 200 ms, prüft dann in einer Schleife, ob Bilder geladen sind.
- Es setzt den Maßstab für das Standard-Objektiv automatisch.
- Es wählt das Straight Line Tool aus (statt des Standard-Rechtecktools).
- Es öffnet den ROI Manager.
- Es aktiviert Show All im ROI Manager, sodass alle bereits gezogenen Linien angezeigt werden.
Damit entfallen beim sämtliche manuelle Vorbereitungsschritte und man kann direkt losmessen. Zur Installation im Ordner Fiji/macros/AutoRun/ eine Datei mit .ijm-Endung anlegen (bspw. Sporenmessung.ijm), den folgenden Code einfügen und Fiji neu starten:
// Fiji/macros/AutoRun/autorun_pilzmikroskopie.ijm
while (true) {
wait(200);
if (nImages > 0) {
run("Set scale for 100x objective"); // Makroname ggf. anpassen
setTool("line");
run("ROI Manager...");
roiManager("Show All");
exit();
}
}
Alles anzeigen
Wer hier bspw. vorwiegend mit dem 40er-Objektiv arbeitet, soltlte run("Set scale for 100x objective"); durch run("Set scale for 40x objective"); ersetzen.
4. Grundlegendes Messen in Fiji
Bevor die Pilzmikroskopie-Scripts erklärt werden, hier der grundlegende Messbetrieb, den Fiji von Haus aus bietet.
4.1. Werkzeuge
Über Rechtsklick auf das Linientool in der Werkzeugleiste sind folgende Varianten verfügbar:
| Werkzeug | Anwendung |
|---|---|
| Straight Line | Einfache gerade Linie (Normalfall) |
| Segmented Line | Mehrfach abknickende Linie (z. B. für ungerade Zystiden, Sporen oder Basidien) |
| Rotated Rectangle | Frei rotierbares Rechteck (z. B. für Entoloma-Sporen) |
4.1.1. Segmented Line
Linksklick setzt einen Ankerpunkt. Weitere Klicks fügen Segmente hinzu. Abschluss: Linksklick auf den Startpunkt.
4.1.2. Rotated Rectangle
Klick und Ziehen definiert die Längsachse; eine zweite Bewegung definiert die Breite.
4.2. ROIs anlegen und speichern
- Linie oder Rechteck zeichnen.
- T drücken → das Werkzeug wird als Region of Interest (ROI) im ROI Manager gespeichert.
- Für alle zu messenden Strukturen wiederholen.
- Show All im ROI Manager aktiviert halten, damit alle gespeicherten ROIs gleichzeitig sichtbar sind.
4.3. Längen ablesen
Analyze → Measure (oder Strg+M) zeigt für alle ROIs im Manager die Längen in der konfigurierten Einheit (µm bei gesetzter Kalibrierung, sonst Pixel).
4.4. Konvention für Sporenmessungen
Pro Spore werden zwei Linien gezogen und mit T gespeichert:
- Erste Linie: Längsachse
- Zweite Linie: Querachse
Das Script Messdaten_speichern_(Linien).js setzt genau dieses Format voraus.
4.5. Navigation
- Mit + rein- und - rauszoomen
- Bei eingezoometem Bild Leertaste halten und linke Maustaste gedrückt halten zum Verschieben des Ausschnitts.
5. Die Pilzmikroskopie-Scripts
Die fünf Scripts funktionieren unabhängig voneinander, sind aber für einen verzahnten Workflow konzipiert. Jedes Script kann interaktiv per Dialog oder vollautomatisch über Makro-Parameter gesteuert werden. Das Automatisierungsprinzip ist das Folgende: Wenn beim Aufruf mindestens ein Makro-Parameter übergeben wird, öffnet sich kein Dialogfenster. Fehlende Parameter fallen auf ihre Standardwerte zurück.
5.1. Messbalken_hinzufügen.js
Dieses Script zeichnet einen kalibrierten Messbalken dauerhaft in das Bild ein (kein Overlay – die Änderung ist permanent im Bildprozessor). Die auszuwählenden Optionen sind:
5.1.1. Dialog-Parameter
| Parameter | Standard | Beschreibung | Variable |
|---|---|---|---|
| Pixel pro µm | auto | Automatisch aus Bildkalibrierung; manuell überschreibbar | pixels_per_um |
| Länge (µm) | 10 | Länge des Messbalkens in Mikrometern | length_um |
| Dicke (px) | 10 | Linienstärke des Balkens in Pixeln | thickness |
| Schriftgröße | 30 | Schriftgröße der Beschriftung | font_size |
| Rand vertikal (%) | 5 | Abstand vom vertikalen Bildrand | margin_vertical |
| Rand horizontal (%) | 2 | Abstand vom horizontalen Bildrand | margin_horizontal |
| Farbe | Blau | Weiß, Schwarz, Rot, Grün, Blau, Gelb, Magenta, Cyan | color |
| Position | Unten rechts | Unten rechts/links, Oben rechts/links | position |
| Vertikale Endbalken | Ja | Abschlusslinien an beiden Enden des Balkens | endcaps |
Dieses Script nutze ich in der Regel für das Dialogmenü.
5.1.2. Makro-Beispiel
run("Messbalken hinzufügen",
"pixels_per_um=44.6 length_um=10 thickness=8 font_size=28 " +
"margin_vertical=3 margin_horizontal=2 " +
"color=Blau position=Unten_rechts endcaps=yes");
5.2. Messdaten_speichern_(Linien).js
Misst alle ROIs im ROI Manager aus und exportiert die Ergebnisse als formatierte ASCII-Tabelle in eine Textdatei. Voraussetzung: Im Manager befinden sich genau zwei Linien-ROIs pro Objekt (Längsachse + Querachse). Die Gesamtanzahl muss geradzahlig sein.
Das Script sortiert intern: Die längere Linie wird als Länge, die kürzere als Breite behandelt. Der Q-Wert (Länge ÷ Breite) wird automatisch berechnet.
5.2.1. Ausgabeformat
| Nr. | Länge (µm) | Breite (µm) | Q-Wert |
|-----+------------+-------------+--------|
| 1 | 8,4 | 4,1 | 2,0 |
| 2 | 9,1 | 4,5 | 2,0 |
Sporenmaße: 8,8 ± 0,5 µm × 4,3 ± 0,3 µm, Q̄ = 2,0 ± 0,1
Reichweite: 8,4–9,1 µm × 4,1–4,5 µm, Q = 2,0–2,0
n = 2
Dateiname der Ausgabe: [Präfix] [Bildname ohne Endung].[Endung]
5.2.2. Parameter
| Parameter | Standard | Beschreibung |
|---|---|---|
measurement_prefix |
[gemessen] | Präfix im Ausgabedateinamen |
measurement_extension |
txt | Dateiendung (ohne Punkt) |
delete_rois |
true | ROIs nach Export löschen |
close_image |
true | Bild nach Export schließen |
5.2.3. Makro-Beispiel
run("Messdaten speichern (Linien)",
"measurement_prefix=[gemessen] measurement_extension=txt " +
"delete_rois=false close_image=false");
5.3. Messdaten_speichern_(Rechtecke).js
Funktioniert analog zu 5.2, jedoch für Rechteck-ROIs. Pro ROI eine Messung
(nicht 2 ROIs pro Objekt). Das Script setzt intern die Messoptionen auf
fit bounding display add, um Width/Height (gerade Rechtecke) oder Major/Minor
(rotierte Rechtecke) zu erfassen.
Ausgabedatei-Kopfzeile: Rechteckmaße: statt Sporenmaße:. Die Parameter sind identisch mit 5.2.
5.4. Bild_mit_Messdaten_versehen.js
Dieses Script liest alle ROIs aus dem ROI Manager, berechnet deren Maße aus der Bildkalibrierung und zeichnet beschriftete Overlays ins Bild. Das Ergebnis wird als neue Bilddatei gespeichert (Präfix [gemessen] vor dem Originalnamen).
Die unterstützten ROI-Typen sind …
- einfache Linie
- segmentierte Linie
- Freihandlinie
- Rechteck
- rotiertes Rechteck.
Das Script enthält eine Kollisionslogik: Wenn eine Beschriftung eine andere Linie überschneiden würde, wird das Label automatisch entlang der Linie verschoben. Bei Rechtecken werden Maßtexte stets außerhalb platziert.
5.4.1. Dialog-Parameter
Der Dialog ist in drei Abschnitte aufgeteilt: Einfache Linien, Segmentierte Linien, Rechtecke. Jeder Abschnitt enthält:
| Parameter | Standard | Beschreibung |
|---|---|---|
| Linienstärke | 4 / 8 / 4 | Breite der Linie in Pixeln |
| Linienfarbe | blue | Farbe als Name (blue, red, green, black …) |
| Schriftgröße | 40 / 80 / 40 | Fontgröße der Maßbeschriftung |
| Schriftfarbe | blue | Farbe des Beschriftungstexts |
| Nachkommastellen | 1 | Dezimalstellen des Messwerts |
Zudem gibt es noch die folgenden Parameter:
| Parameter | Standard | Beschreibung |
|---|---|---|
rect_show_area |
false | Flächeninhalt des Rechtecks anzeigen |
save_to_overlay |
true | Overlay (true) oder ROI (false) |
save_overlay_image |
true | Beschriftetes Bild als Datei speichern |
measurement_folder |
(leer) | Optionaler Unterordner für gespeicherte Bilder |
close_overlay_image_after_saving |
true | Originalbild nach dem Speichern schließen |
delete_rois_after_saving |
true | ROIs nach dem Speichern löschen |
5.4.2. Makro-Beispiel
run("Bild mit Messdaten versehen",
"line_width=3 line_color=green line_font_size=36 line_digits=1 " +
"seg_width=6 seg_color=green seg_font_size=60 seg_digits=1 " +
"save_overlay_image=true close_overlay_image_after_saving=false " +
"delete_rois_after_saving=false measurement_folder=gemessen");
5.5. Messdaten_zusammenführen.js
Dieses Script lies alle Einzelmessdateien eines Ordners (erzeugt durch Scripts 5.2 / 5.3) und führt sie zu einer Gesamtstatistik zusammen. Quelldateien werden anhand ihres Präfixes und ihrer Endung identifiziert.
Das Script sucht im Verzeichnis des aktuell geöffneten Bildes. Alle Dateien mit passendem Präfix und passender Endung werden eingelesen, die Werte akkumuliert und eine Ausgabedatei erstellt.
Ein Hinweis zu eckigen Klammern: Wird das Präfix im Makro-Modus ohne eckige Klammern übergeben (z. B. gemessen statt [gemessen]), ergänzt das Script die Klammern automatisch.
5.5.1. Ausgabeformat
Die Ausgabedatei enthält drei Abschnitte:
GESAMTSTATISTIK FÜR [STRUKTUR]– Mittelwert ± SD, Reichweite, nAKKUMULIERTE MESSDATEN– vollständige Wertetabelle aller EinzelmessungenQUELLDATEIEN(optional) – Ursprungsdateien mit Nummernbereichen, Ordner, Datum und Uhrzeit
5.5.2. Parameter
| Parameter | Standard | Beschreibung |
|---|---|---|
measurement_prefix |
[gemessen] | Präfix der Quelldateien |
measurement_file_ext |
txt | Endung der Quelldateien |
output_file |
[merged] Messwerte | Dateiname der Ausgabedatei |
output_ext |
txt | Endung der Ausgabedatei |
structure_to_measure |
Sporen | Name der Struktur (Sporen, Basidien, Zystiden …) |
show_sources |
yes | Quelldateiliste in der Ausgabe anzeigen |
delete_sources |
yes | Quelldateien nach dem Merge löschen |
close_fiji |
no | Fiji nach Abschluss beenden |
5.5.3. Makro-Beispiel
run("Messdaten zusammenführen",
"measurement_prefix=[gemessen] measurement_file_ext=txt " +
"output_file=[merged] Messwerte output_ext=txt " +
"structure_to_measure=Sporen show_sources=yes " +
"delete_sources=yes close_fiji=yes");
6. Effizienter Workflow mit Makros
Für das tägliche Messen vieler Bilder empfiehlt sich ein Workflow, der alle Scripts über Tastenkürzel automatisch aufruft – ohne Dialoge, ohne manuelle Eingaben.
6.1. Konzept
Die Workflow-Makros werden in der StartupMacros-Datei hinterlegt. Jedes Makro ruft die benötigten Scripts mit festen Parametern auf und öffnet anschließend das nächste Bild im Ordner. Existiert kein nächstes Bild, wird die Gesamtstatistik automatisch erstellt und Fiji beendet. Meine Tastenbelegungen sind:
| Taste | Funktion |
|---|---|
| 1 | Messen + Overlay einbrennen + nächstes Bild öffnen |
| 2 | Bild überspringen (kein Overlay, nur weiterblättern) |
| 3 | Nur Messdaten speichern, Bild schließen (kein Overlay) |
| 4 | Letztes Bild manuell beenden: Messdaten speichern + Zusammenführen |
6.2. Schriftgröße und Linienstärke je Objektiv
Das Hilfsskript getWidthAndFontByScale() liest die aktuelle Kalibrierung aus
und gibt passende Werte zurück:
| Objektiv | Pixel/µm (ca.) | Linienstärke | Schriftgröße |
|---|---|---|---|
| 10× | ~4,7 | 1 | 1 |
| 25× | ~11,7 | 1 | 3 |
| 40× | ~18,9 | 1 | 10 |
| 100× | ~45 | 1 | 20 |
6.3. Workflow-Makros (vollständiger Code)
// -----------------------------------------------
// Hilfsfunktion: Nächstes Bild im Ordner öffnen
// Gibt true zurück wenn weiteres Bild geöffnet,
// false wenn letztes Bild erreicht.
// -----------------------------------------------
function openNextImage(current_title) {
dir = getDirectory("image");
if (dir == "") { showMessage("Fehler", "Bild hat kein Verzeichnis."); exit(); }
list = getFileList(dir);
images = newArray();
for (i = 0; i < list.length; i++) {
name = toLowerCase(list[i]);
if (endsWith(name, ".tif") || endsWith(name, ".tiff") ||
endsWith(name, ".jpg") || endsWith(name, ".jpeg") ||
endsWith(name, ".png") || endsWith(name, ".bmp")) {
images = Array.concat(images, list[i]);
}
}
Array.sort(images);
idx = -1;
for (i = 0; i < images.length; i++) {
if (images[i] == current_title) { idx = i; break; }
}
if (idx == -1) {
showMessage("Fehler", "Aktuelles Bild nicht im Ordner gefunden.");
exit();
}
if (idx < images.length - 1) {
close();
open(dir + images[idx + 1]);
run("Maximize");
return true;
} else {
return false;
}
}
// -----------------------------------------------
// Hilfsfunktion: Linienstärke und Schriftgröße
// je nach aktiver Kalibrierung (Objektiv) wählen
// -----------------------------------------------
function getWidthAndFontByScale() {
getPixelSize(unit, pixelWidth, pixelHeight);
dist = round(1 / pixelWidth);
if (dist <= 5) return newArray(1, 1);
else if (dist <= 12) return newArray(1, 3);
else if (dist <= 20) return newArray(1, 10);
else return newArray(1, 20);
}
// -----------------------------------------------
// Taste 1: Spore messen + Overlay + nächstes Bild
// (am letzten Bild: Zusammenführen + Fiji schließen)
// -----------------------------------------------
macro "Measurement Workflow einzelne Spore [1]" {
measurement_prefix = "[gemessen]";
measurement_file_ext = "txt";
measurement_folder = "gemessen";
params = getWidthAndFontByScale();
width = params[0];
font_size = "" + params[1];
if (nImages == 0) { showMessage("Fehler", "Kein Bild geöffnet."); exit(); }
title = getTitle();
run("Messdaten speichern (Linien)",
"measurement_prefix=" + measurement_prefix +
" delete_rois=false close_image=false");
run("Bild mit Messdaten versehen",
"save_overlay_image_prefix=" + measurement_prefix +
" close_overlay_image_after_saving=false" +
" measurement_prefix=" + measurement_prefix +
" line_width=" + width +
" seg_width=" + width +
" line_font_size=" + font_size +
" seg_font_size=" + font_size +
" line_color=green line_text_color=green" +
" delete_rois=false close_image=false" +
" measurement_folder=" + measurement_folder);
opened = openNextImage(title);
if (!opened) {
run("Messdaten zusammenführen",
"measurement_prefix=" + measurement_prefix +
" measurement_file_ext=" + measurement_file_ext +
" output_file=[merged] Messwerte output_ext=txt" +
" close_fiji=yes show_sources=yes delete_sources=no" +
" structure_to_measure=Sporen");
}
}
// -----------------------------------------------
// Taste 2: Bild überspringen (Skip)
// -----------------------------------------------
macro "Measurement Workflow einzelne Spore (Skip) [2]" {
measurement_prefix = "[gemessen]";
measurement_file_ext = "txt";
if (nImages == 0) { showMessage("Fehler", "Kein Bild geöffnet."); exit(); }
title = getTitle();
opened = openNextImage(title);
if (!opened) {
run("Messdaten zusammenführen",
"measurement_prefix=" + measurement_prefix +
" measurement_file_ext=" + measurement_file_ext +
" output_file=Messwerte output_ext=txt" +
" close_fiji=yes show_sources=yes delete_sources=no" +
" structure_to_measure=Sporen");
}
}
// -----------------------------------------------
// Taste 3: Nur Messdaten speichern, Bild schließen
// (kein Overlay-Bild)
// -----------------------------------------------
macro "Measurement Workflow (Sporen, Bild ohne Messdaten) [3]" {
run("Messdaten speichern (Linien)",
"measurement_prefix=[gemessen] delete_rois=false close_image=true");
}
// -----------------------------------------------
// Taste 4: Manuell beenden
// Messdaten speichern + Zusammenführen + Fiji schließen
// -----------------------------------------------
macro "Measurement Workflow beenden (Sporen, Bild ohne Messdaten) [4]" {
run("Messdaten speichern (Linien)",
"measurement_prefix=[gemessen] delete_rois=false close_image=false");
run("Messdaten zusammenführen",
"structure_to_measure=Sporen close_fiji=yes measurement_prefix=[gemessen]");
}
Alles anzeigen
6.4. Schritt-für-Schritt: Typischer Messdurchlauf
- Fiji starten → Autorun-Script konfiguriert Werkzeuge automatisch.
- Erstes Bild öffnen (Drag & Drop). Kalibrierung ggf. per F-Taste setzen.
- Für jede Spore: Längsachse ziehen → T, Querachse ziehen → T.
- Taste 1 drücken:
- Messdaten werden in eine
.txt-Datei exportiert. - Ein beschriftetes Bild (
[gemessen] Bildname) wird gespeichert. - Das nächste Bild im Ordner öffnet sich automatisch.
- Messdaten werden in eine
- Schritte 3–4 für alle weiteren Bilder wiederholen.
- Am letzten Bild: ROIs setzen, dann Taste 1 drücken.
- Das Script erkennt, dass kein weiteres Bild folgt.
- Alle Einzeldateien werden zur Gesamtstatistik zusammengeführt.
- Fiji schließt sich.
Soll ein Bild ohne Messung übersprungen werden: Taste 2 drücken.
7. Tipps und häufige Fehler
7.1. Häufige Fehlermeldungen
| Fehler / Problem | Ursache | Lösung |
|---|---|---|
| „ROI Manager ist leer" | Keine ROIs vorhanden | Linien zeichnen und mit T speichern, dann Script aufrufen |
| „Messzahl ist ungerade oder 0" | Ungerade ROI-Anzahl | Genau 2 ROIs pro Spore anlegen |
| Beschriftung außerhalb des Bildbereichs | Schriftgröße zu groß | line_font_size / seg_font_size verringern |
| Farbe nicht erkannt | Unbekannter Farbname | Nur Java-Standardfarben verwenden (s. Abschnitt 7.2) |
| Keine Quelldateien beim Zusammenführen | Präfix oder Endung stimmt nicht | Präfix inkl. eckiger Klammern und Dateiendung prüfen |
| Bild wird im falschen Ordner gespeichert | Bild noch nicht auf Disk gespeichert | Bild vor dem Script-Aufruf speichern |
| Kalibrierung nach Neustart weg | Nicht in StartupMacros eingetragen | Makros gemäß Abschnitt 3.2 in StartupMacros eintragen |
7.2. Unterstützte Farbnamen
| Parameterwert | Farbe |
|---|---|
blue |
Blau |
red |
Rot |
green |
Grün |
black |
Schwarz |
white |
Weiß |
yellow |
Gelb |
magenta |
Magenta |
cyan |
Cyan |
Groß- und Kleinschreibung werden automatisch normalisiert.
7.3. Präfix-Konvention
Präfixe mit eckigen Klammern (z. B. [gemessen]) werden beim alphabetischen Sortieren im Dateimanager ganz oben angezeigt. So lassen sich gemessene und
ungemessene Bilder auf einen Blick unterscheiden.
8. Schnellübersicht
8.1. Scripts
| Script | Funktion | Voraussetzung |
|---|---|---|
Messbalken_hinzufügen.js |
Messbalken dauerhaft ins Bild einzeichnen | Geöffnetes Bild (kalibriert) |
Bild_mit_Messdaten_versehen.js |
Maßlinien und Beschriftungen ins Bild brennen | ROIs im ROI Manager |
Messdaten_speichern_(Linien).js |
Sporenmaße aus Linien-ROIs exportieren | Gerade Anzahl Linien-ROIs |
Messdaten_speichern_(Rechtecke).js |
Maße aus Rechteck-ROIs exportieren | Rechteck-ROIs im Manager |
Messdaten_zusammenführen.js |
Einzeldateien zu Gesamtstatistik zusammenführen | Gespeicherte Einzeldateien |
8.2. Tastenkürzel
| Taste | Funktion |
|---|---|
| F1 – F3 | Kalibrierung setzen (10×, 40×, 100×) |
| T | Aktuelle Linie/ROI im ROI Manager speichern |
| 1 | Messen + Overlay + nächstes Bild |
| 2 | Bild überspringen |
| 3 | Nur Messdaten speichern, Bild schließen |
| 4 | Letztes Bild: Messdaten speichern + Zusammenführen + Fiji beenden |
| + / − | Rein-/Rauszoomen |
| Leertaste | Bild bei gedrückter linker Maustaste verschieben |
