Skip to content

Histogramm-Werte auslesen mit ImageJ

Die @daehaex, die gerade an "organotypischen Co-Kulturen" forscht, fragte heute über Twitter, ob jemand das kann:

ein macro für imagej schreiben, das mir als batch aus einem ordner voller binärer tiffs von allen bildern mit bildnamen die anzahl der pixel mit der value 0 und value 255 auflistet? quasi wie die funktion "histogram" nur ohne die values 1-254.

Da ich von ihren Analysen zwar keine Ahnung habe, ihr aber trotzdem gern helfen wollte, habe ich mir flugs ImageJ aus den Ubuntu-Repositories installiert, die Dokumentation der Makro-Funktionen ergooglet und noch dieses hilfreiche PDF-Tutorial gefunden. Herausgekommen ist am Ende folgendes rudimentäre Skript, dessen Output als CSV in $Tabellenkalkulation importiert werden kann.

dir = getDirectory("Choose Directory ");
list = getFileList(dir);
setBatchMode(true);
for (i=0; i<list.length; i++) {
    showProgress(i+1, list.length);
    filename = dir + list[i];
    open(filename);
    getHistogram(0, counts, 256);
    print('"' + getInfo("image.filename") + '",' + counts[0] + ',' + counts[255]);
    close();
}

Geht bestimmt auch eleganter, aber es funktioniert, der Wissenschaftsbetrieb kann aufrecht erhalten werden, und ich bekomme demnächst ein Bier spendiert :-D

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

Ulli (daheaex) am :

Auf Twitter lesen: daehaex
Ulli (daheaex)

1a!!!

Ich hab da heut ewig dran rumgefricket und es wurd und wurd nix. Aija, ich bin ja auch Forscher und kein Frickler!!

Aber der Matthias, der kann das. Super! Ich werde damit morgen noch ein paar anderen Leuten im Lab, die mit binären Bildern arbeiten eine Freude machen.

Ich hab das ganze insoweit verändert, dass ich am Ende die Kommas zur Leerzeichen ersetzt hab, so macht ImageJ Spalten draus.

print('"' + getInfo("image.filename") + '" ' + counts[0] + ' ' + counts[255]);

Das erste ausgelesene Bild macht er allerdings als Spaltenüberschrift. Naja.... Forscher... Frickler... Ihr wisst schon.

Vielen Dank, Matthias!!

Matthias Gutjahr am :

Matthias Gutjahr

Ulli, ich habe deinen Kommentar etwas editiert, damit er korrekt angezeigt wird, und das Skript auf die geänderte Zeile beschränkt.

Kommentar schreiben

Markdown-Formatierung erlaubt
Wenn Du Deinen Twitter Namen eingibst wird Deine Timeline in Deinem Kommentar verlinkt.
Bewirb einen Deiner letzten Artikel
Dieses Blog erlaubt Dir mit Deinem Kommentar einen Deiner letzten Artikel zu bewerben. Bitte gib Deine Blog URL als Homepage ein, dann wird eine Auswahl erscheinen, in der Du einen Artikel auswählen kannst. (Javascript erforderlich)
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.

Um maschinelle und automatische Übertragung von Spamkommentaren zu verhindern, bitte die Zeichenfolge im dargestellten Bild in der Eingabemaske eintragen. Nur wenn die Zeichenfolge richtig eingegeben wurde, kann der Kommentar angenommen werden. Bitte beachten Sie, dass Ihr Browser Cookies unterstützen muss, um dieses Verfahren anzuwenden.
CAPTCHA

Formular-Optionen

Kommentare werden erst nach redaktioneller Prüfung freigeschaltet!