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.
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