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