Poren auszählen mit ImageJ ?

Begonnen von Bernd Miggel, Februar 12, 2021, 08:22:09 VORMITTAG

Vorheriges Thema - Nächstes Thema

Bernd Miggel

Hallo zusammen!

Bei Porlingen die Poren pro Millimeter oder pro Quadratmillimeter auszählen ist oft eine mühsame Sache.
Jetzt habe ich gelesen, dass man mit der Software ImageJ Objekte in Bildern auszählen kann.
Wer hat Erfahrungen mit ImageJ gemacht?

L.G. - Bernd

mhaardt

Ich benutze es gelegentlich für Photometrie.  ImageJ ist nicht nur ein Programm, sondern vor allem ein Framework, welches mit Plugins erweiterbar ist.  Es gibt verschiedene Distributionen, die direkt einen Haufen Plugins enthalten, z.B. https://imagej.net/Fiji .

Die Bedienung von ImageJ ist etwas eigenartig.  Ich empfehle ein Tutorial anzuschauen.  Wenn man das tut, sich drauf einläßt und nicht ohne Vorkenntnisse erwartet, dass es wie andere GUIs arbeitet, dann kommt man sehr gut zurecht.  Um mal zu sehen, was so geht:

https://www.youtube.com/watch?v=uE70E7aZ1Hw  ca. 12:40

Michael

Bernd Miggel

Hallo Michael,

mir ist nicht klar, was im Video lif-image mit 35 different series und 3 planes bedeutet. Da bin ich wohl nicht vom Fach.
Könntest du die Begriffe bitte ganz kurz erläutern?

L.G. - Bernd

micromax

Hallo Bernd,

suche einmal in google "ImageJ tutorials deutsch"

Du wirst viele unterschiedliche Videos finden, die Dir ImageJ erklären. Zum Beispiel hier:

https://www.youtube.com/watch?v=u2kllG_Jg88

Viele Grüße
Thomas

Bernd Miggel

Hallo,

vielen Dank für eure hilfreichen Antworten, hat mir sehr geholfen!

L.G. - Bernd

mhaardt

#5
Es gibt ein paar Bildformate, die mehrere Bilder beeinhalten können.  LIF (Leica Image Format) ist so eins.  Im Video wird gezeigt, dass man zwar alle Einzelbilder mit open öffnen kann, aber wenn man die speziellen Eigenschaften eines Formats nutzen will, import benutzen muss.  Es gibt viele Verfahren, die nicht auf einem Bild arbeiten, sondern auf einer Serie.  ImageJ ist in dem Bereich sehr stark.

Farbbilder sind meist RGB (rot grün blau), d.h. sie haben 3 Kanäle/Planes.

Das Video sollte nur mal zeigen, wie man sich ImageJ, und speziell die Distribution Fiji, vorzustellen hat, wie Plugins aussehen können und wie man welche installiert, und wie Plugins z.B. Objekte identifizieren.  Es gibt für eigentlich alle üblichen Abläufe Plugins.  Ein Teil der Arbeit ist, das beste Plugin für eine Aufgabe zu finden.

Nicht verzweifeln! Wie in allen großen Programmen sind die ersten Schritte am schwersten, und die grafische Oberfläche ist gelegentlich sehr altertümlich, aber es lohnt sich.  Du wirst eine Welt voll neuer Möglichkeiten entdecken.  Objekte identifizieren und zählen ist in der Biologie eine typische Aufgabe und darum gibt es in dem Bereich schon viele fertige Plugins.

Michael

d65

Hallo Bernd,

wenn Du Deine Objekte in einem schwarz-weiß-Bild (Farbbild auftrennen: Image-Color-Split channels) einfach über einen Helligkeitsschwellenwert abtrennen kannst (Image-Adjust-Threshold), dann ist das Zählen mit Fiji/ImageJ super einfach (Analyze - Analyze particles.) Das Problem ist nicht das Zählen an sich, sondern das Segmentieren des Bildes, das erstellen einer "Maske": Was gehört zum/ist ein Objekt, was nicht. Bei Fluoreszenzbildern ist das häufig einfach mit Schwellenwert zu machen. Bei Hellfeldbildern kann es schwierig werden. Ich weiß nicht wie Deine Bilder aussehen. Sollten die Poren sehr viel dunkler sein als der Rest, dann ist es wieder einfach (evtl invertieren).

Siehe auch https://imagej.net/Particle_Analysis

Liebe Grüße
Steffen

A. Büschlen

Hallo Bernd,

wäre nicht auch die analoge Auszählung mit Hilfe eines Netzgitters um Okular eine Lösung? Mögliche Netzgitter gibt es hier: https://www.pog.eu/de/ms/sms-net-grids.html
Machst die Auszählung am Stereomikroskop, oder am Mikroskop?

Gruss Arnold
Schwerpunkt z.Z.:
- Laub- und Lebermoose.
- Ascomyceten als Bryoparasiten.
- Nikon Optiphot I mit HF, DIC.
- Nikon Microphot mit HF, Pol.
- Zeiss Standard Universal mit HF, Ph, Pol.
- Wild M3Z mit Ergotubus.
- Nikon SMZ-U Zoom 1:10 mit ED Plan Apo 1x.

Günter

Hallo Bernd,

bei ImageJ habe ich bei früheren Anwendungsversuchen gestreikt. Ich konnte mich in dessen Philosophie der Bedienung und Plugins als Gelegenheitsnutzer einfach nicht einfinden.
Meine Idee ginge in die Richtung, ein Foto von den Poren so zu machen, dass man anschließend einen Maßstabs-"Balken" einfügen kann.
Also ein definierter Aufbau vom (Stereo-) Mikroskop oder was auch immer. Alternativ Aufnahme mittels Stativ, dann 2 Bilder, einmal die Poren, einmal mm-Papier.
Damit ist es dann möglich, einen Balken oder (in diesem Fall sinnvoller) ein Quadrat von zB 1 mm Kantenlänge in das Bild einzufügen. Dann kann man die Poren innerhalb des Quadrates manuell zählen, ggf. auch mittels Bildbearbeitung ein Kreuzchen an die bereits gezählten Poren machen.
Geht also ein wenig in die Richtung von Arnolds Gedanken.

Grüße
Günter
über mich   
Folge denen, die die Wahrheit suchen.
zweifle an denen, die sie gefunden haben.

mlippert

Das Vorgehen bei ImageJ wäre, unter Image > Adjust mittels "color threshold" die Poren zu markieren und dann unter Analyze > Analyze Particles die Partikel zählen zu lassen. Dabei kann man die ca. Fläche spezifizieren und die Rundheit. Dann sollte das gut gehen. Dauert 10s pro Bild.

Bernd Miggel

Hallo zusammen,

danke für die vielen Anregungen!
Hier ein typisches Porenbild mit einer Kantenlänge von 2 mm zum Quadrat, also 4 mm2.
Ich zweifle, dass ImageJ hier funktioniert. Will von euch es mal jemand versuchen?

L.G. - Bernd

Hier das Bild:


d65

Hallo Bernd,

probier doch mal aus, was Du davon hältst: Im Menu Plugins-Macros-Record, ins neue Fenster die folgenden Zeilen kopieren, dann auf Create

run("8-bit");
run("FFT");
makeOval(508, 510, 13, 12);
setBackgroundColor(0, 0, 0);
run("Clear", "slice");
run("Inverse FFT");
//run("Brightness/Contrast...");
run("Enhance Contrast", "saturated=0.35");
run("Apply LUT");
run("Gaussian Blur...", "sigma=5");
run("Duplicate...", " ");
setAutoThreshold("Default dark");
//run("Threshold...");
//setThreshold(0, 44);
setOption("BlackBackground", false);
run("Convert to Mask");
run("Analyze Particles...", "size=500-Infinity show=Outlines display clear summarize add");


Nach dem Click auf Create geht wieder ein neues Fenster auf, das eigentliche Macro-Fenster. Wenn jetzt das Bild geöffnet und 'vorne' ist im Macro-Fenster auf "run" klicken.

Das Ergebnis ist bei weitem nicht perfekt, aber gibt vielleicht einen Eindruck davon was möglich wäre. Bei entsprechendem Tweaken der Parameter lässt sich das sicher noch verbessern. Die jeweiligen Befehle habe ich mit dem Macro-Recorder aufgezeichnet. Es gibt also auch jeweils eine Entsprechung in den Menus.

Der "Trick" besteht darin, dass Bild quasi in ein Dunkelfeldbild umzuwandeln, indem im Fourrier-Raum die Mitte, also das Zentralmaximum zu entfernen. Dann ist die Segmentierung einfacher. Der Schritt ist sicher auch noch nicht perfektioniert.

Oder einfach mal die Leute, die das schon gemacht haben fragen, ob sie ihre Tools/Makros her geben.

Liebe Grüße
Steffen

mlippert

Also ich habe einfach mal Image > Type > 16 bit gemacht, um ein Graustufenbild zu bekommen und dann Analyze > Find Maxima mit Noise Immunity = 10. Findet die Tüpfel nahezu perfekt. Minima geht durch "light background". Ergebnis im Anhang, 72 Punkte, 10 s Arbeit :-)

Grüße,
Micha

d65

Zitat von: mlippert in Februar 13, 2021, 22:43:07 NACHMITTAGS
Also ich habe einfach mal Image > Type > 16 bit gemacht, um ein Graustufenbild zu bekommen und dann Analyze > Find Maxima mit Noise Immunity = 10. Findet die Tüpfel nahezu perfekt. Minima geht durch "light background". Ergebnis im Anhang, 72 Punkte, 10 s Arbeit :-)

Grüße,
Micha

Das sieht gut aus. Vermutlich gibt es auch noch mindestens 5 weitere Wege zum Ziel :-)

Wie immer bei derartigen Auswertungen besteht das Problem, was man mit den Objekten am Rand macht, die nur zum Teil drauf sind. Zählt man die mit oder nicht? Oder nur die, die oben und rechts am Rand sind, aber nicht die links und unten? Aber das Problem hat man mit einer händischen Auswertung natürlich genau so.

Was vielleicht noch erwähnenswert ist, ist der Menupunkt Image-Properties. Da kann man die "Pixelgröße" eingeben (bzw. bei Bildern aus Mikroskopsoftware, bei denen das in den Metadaten steht nachschauen). Dann kann das Programm auch gleich die Anzahl pro Fläche ausrechnen.
Gruß
Steffen

Bernd Miggel

#14
Hallo Micha und Steffen,

das sieht sehr gut aus. Bei Randobjekten verfahre ich so, dass z.B. nur die am oberen und am linken Rand gezählt werden. Wenn hier also die am unteren und am rechten Rand abgezogen werden, erhält man 72 - 5 = 67. Ich selber hatte manuell 63 gezählt, was kaum abweicht!

Vielen Dank, morgen will ich selber mein Glück versuchen, und zwar erst einmal nach den beiden von euch vorgeschlagenen Wegen.

L.G. - Bernd