Heißen die wirklich Vorciella? Ich kenn nur Vorticella.
LG, Klemens
Heißen die wirklich Vorciella? Ich kenn nur Vorticella.
LG, Klemens
Na ja, ad hoc würde ich eine Linie (in X, dann für Y die gleiche Prozedur) über die zu vermessenden Drähte ziehen und mit Analyze->Plot Profile ein Profil ausgeben lassen. Da kann man relativ gut die Abstände herausmessen. Automatisiert kenn ich nichts, das so präzise geht.
Die Messwerte (Intensitäten entlang der Linie) lassen sich als Text ausgeben und weiterverarbeiten.
Oder die Software von Karsten probieren ...
Ein Versuch:
Plot Profil, dann wiederum bei eine gewünschten Intensität eine Linie ziehen
Plot Profil
List
Dort wo die Null steht, ist ein Schnittpunkt = Kante (bestimmter Intensität). Jetzt die Abstände von Null zu Null weiterverarbeiten.
LG Klemens
Beim frischen Blut würde ich mal stacken probieren.
VG, Klemens
Hübsches Mädchen ![]()
Hallo Karsten!
Das Programm hat sich ja ordentlich weiterentwickelt seit du es vor Jahren vorgestellt hast. ![]()
Hab nochmal genauer nachgesehen und nicht auf die KI vertraut. Siehe https://bio-formats.readthedocs.io/en/v8.3.0/supported-formats.html
Es gibt dann noch einen extra Filehandler unter https://imagej.net/ij/plugins/file-handler.html der aber auch kein RW2 Format kennt. Panasonic hat da ein ganz eigenes Süppchen gekocht.
Mein Lieblingsfileviewer Irfanview kann RW2 öffnen. Damit in ein uncompressed TIFF umwandeln (geht auch im Batch).
ZitatLeider bin ich gescheitert mit der RAW Bearbeitung (Panasonic G9MK2)
Hallo Frank, lag es am Import der RW2 Datei? Mit dem Plugin Bio-Formats sollte das gehen. Es wird mit Fiji gleich mit installiert.
VG Klemens
Zum Vorverarbeiten der Bilder durch Mittelung, Median, etc. kann man einen Stack verwenden. Dazu nenne ich meine Objektbilder z.B. O_irgendwas_NN.tif und die dazugehörigen Flats z.B. H_irgendwas_NN.tif mit NN als fortlaufende Nummer. Dann lassen sich die Bilder mit File=>Import=>Image Sequence unter Angabe des Filters "O_" bzw. "H_" importieren.
mit Image=>Stacks=>Z Project... die gewünschte Operation ausführen
ergibt dann ein neues Bild bei dem alle Bilder z.B. gemittelt sind.
Als Macro sieht dann so aus. Das ergibt dann genau das was ich in diesem Posting gezeigt habe.
File.openSequence("D:/bilder/Mikroskop/flatfieldcorr/ralf/test/", " filter=H_");
rename("Flat");
run("Z Project...", "projection=[Average Intensity]");
File.openSequence("D:/bilder/Mikroskop/flatfieldcorr/ralf/test/", " filter=O_");
rename("Object");
run("Z Project...", "projection=[Average Intensity]");
run("Measure");
mymean=getResult("Mean");
mymin=getResult("Min");
mymax=getResult("Max");
selectImage("AVG_Object");
run("Calculator Plus", "i1=AVG_Object i2=AVG_Flat operation=[Divide: i2 = (i1/i2) x k1 + k2] k1=" + mymean + " k2=0 create");
run("Window/Level...");
run("Enhance Contrast", "saturated=0.35");
Alles anzeigen
Man kann natürlich das alles noch verfeinern in dem man z.B. die Farbkanäle separiert und einzeln "behandelt".
VG Klemens
Macros ermöglichen es reproduzierbare Abläufe zu automatisieren. Mit Ctrl-U wird der Recorder eingeschaltet, mit create kann das aufgenommene Programm in den Editor übernommen und bearbeitet werden.
Mit New oder Edit kommt man auch zum Editor mit den üblichen Funktionen. Programmiert kann in mehreren Sprachen werden (Sprache muss z.T. vorher installiert werden).
Dann kann man z.B. dieses Programm ablaufen lassen:
macro "ffc"{
path = File.openDialog("Select a File");
dir = File.getParent(path);
name = File.getNameWithoutExtension(path);
open(path);
rename("Original");
run("Duplicate...", "title=Flat");
run("Gaussian Blur...", "sigma=30");
run("Measure");
m=getResult("Mean");
mymin=getResult("Min");
mymax=getResult("Max");
selectImage("Original");
run("Calculator Plus", "i1=Original i2=Flat operation=[Divide: i2 = (i1/i2) x k1 + k2] k1=" + m + " k2=0 create");
//run("Brightness/Contrast...");
setMinAndMax(mymin*0.9, mymax*1.1);
saveAs("jpeg", dir + "/" + name + "_flat");
}
Alles anzeigen
Wie hier schon angedroht, macht es eine Flatfield Korrektur ohne extra aufgenommenes Flat und speichert das korrigierte Bild ab. Mit Strg+R (oder Menü: Run->Run) wird das Programm gestartet, mit Strg+Umschalt+R kann der markierte Programmtext ausgeführt werden.
VG Klemens
So, ich fang mal ein Thema zu ImageJ/Fiji an.
Zwei Anleitungen hab ich ja vor einiger Zeit schon erstellt
und
.
Vorab aber mal die Installation und die ersten praktischen Anwendungen:
Datei öffen, speichern, etc. findet man an den üblichen Stellen.
Unter Image finden sich die Änderung des Grafiktyps (8bit, 32bit, RGB, ...)
die Anpassung (Adjust)
beschneiden, duplizieren, skalieren, transformieren, ...
Unter Process findet man im Wesentlichen Filter und mathematische Operationen im weiteren Sinn
unter Analyze vor allem die Messfunktion für Mittelwert, Min, Max, etc., die Plot- und die Histogrammfunktion (funktionieren auch in markierten Bereichen oder auf Linien), sehr brauchbar auch die Skalierung zur exakten Messung von Längen und Flächen (Aufnahme eines Kalibrierobjektträgers nötig). Mit einer geraden Linie und Plot lässt sich z.B. der Querschnitt von Zellen vermessen (angedeutet im Bild)
und dann gibt es noch eine Menge Plugins, die schon dabei sind und die man aus dem Katalog nachladen kann.
Sehr schön sind auch die Beispiele
Fortsetzung folgt.
VG Klemens
Im Grunde ist das in meinem "Tutorial" aus 2016 beschrieben. Ich mach dazu evtl. noch ein eigenes Thema auf.
Ralfs Programm macht mathematisch prinzipiell das gleiche. Und ich denke, dass es ausgesprochen lehrreich ist, sich selbst so ein Programm zu erarbeiten.
Ich war halt zu faul mir ein eigenes Programm zu schreiben (muss ich in der Arbeit ohnehin immer, das reicht mir). Meine Wahl wäre sonst Matlab, Octave oder Scilab gewesen. Da sind die Matrixoperationen einfach und schnell. ImageJ hat aber schon alles für dieses image processing an Bord und noch mehr.
Aus jugendlicher Neugier habe ich in ChatGPT diesen Prompt eingegeben: Schreibe ein Programm in imagej/fiji, das bei einem Bild mit Vignettierung eine flat field correction macht.
Klappt ausgezeichnet!
VG Klemens
Hallo Erik, ich denke dass das nicht eine Aufgabe für die flat field correction ist. Diese korrigiert doch Sensorungleichmäßigkeiten oder "Probleme" im Strahlengang wie etwa Vignettierungen. Was auch geht sind leichte Verschmutzungen oder kleine Kratzer, aber die sind am Flat und am eigentlichen Bild gleich. Das lässt sich dann herausrechnen.
Solche Effekte, die nur im Flat sind und nicht im eigentlichen Bild, können mit dieser Korrektur nicht entfernt werden. Ist ja auch Unsinn. Wieso sollte ich das Bild mit einem fehlerhaften Flat, das völlig andere Bildinformationen hat, korrigieren?
Ungleichmäßige Ausleuchtung und Vignettierung kann man sogar so halbwegs aus dem Originalbild herausrechnen indem man einen Blur mit großem Radius erzeugt und das Original durch dieses Bild dividiert. Histogramm anpassen, fertig. Die Muster am korrigierten Bild kommen von der JPEG Kompression. Man könnte sicher noch mehr herausholen mit TIFF oder Raw.
Median mit 50 pixel Radius
(Original / Flat) * 79, dann am Histogramm herumgedreht
VG Klemens
Ich hab mal schnell ein paar Bilder gemacht mit einem Artefakt.
Die Leerbilder (H) und Objektbilder (P) wurden gemittelt vom gemittelten Leerbild der mittlere Grauwert gemessen, die Bilder mit der Operation Result = (P/H) x k1 + k2 mit k1=104.9 k2=0
k1 ist der mittlere Grauwert. Anschließend noch das Histogramm automatisch angepasst.
Die Dunkelbilder hab ich nicht verwendet. Grauwerte sind bei mir normalverteilt im sehr dunklen Bereich.
Alles mal ohne Kanaltrennung oder sonstige Optimierung. Monochrome Bilder gehen noch besser.
Kann vielleicht jemand solche Bilder mit echten Artefakten aus der Praxis zur Verfügung stellen? Dann tu ich mit leichter. Ich hab da momentan nix.
Danke Klemens
Hab ich vor. Hab ja schon mal die Vorgehensweise als Doku in der Filebase zur Verfügung gestellt.
Es ist zwar sehr lehrreich das Rad selber neu zu erfinden. Ich bin aber der Ansicht, dass man mit bestehenden und erprobten Mitteln, die Standards verwenden und eine große Community haben, schneller zum Ziel kommt, wenn das Ziel z.B. eine FF-Korrektur ist und nicht die Programmierung an sich.
VG Klemens
So, jetzt hab ich mal ein wenig nachgelesen und in Wikipedia auch gleich das gefunden (muss man selber weniger denken
)
C=(R-D) * m / (F-D) = (R-D) * G
Solche Operationen lassen sich in ImageJ ganz einfach machen. Diese Vorgangsweise in meiner Doku enthält das in einfacherer Form, ist aber beliebig ausbaubar z.B. mit Macros zum Wiederverwenden. Es geht auch in anderen integrierten oder externen Programmiersprachen. Editor mit Syntax Highlight, Recording und Einzelschritt sind vorhanden. Ich mag das Programm, da man sich auf's image processing konzentrieren kann und nicht auf's Programmieren. Man hatte sehr viele brauchbare Tools zur Hand und es läuft auf allen gängigen OS.
Mit openCV arbeitet ImageJ auch zusammen https://imagej.net/software/opencv. Ebenso gibt es eine OpenAI Schnittstelle.
Python und openCV auf die Schnelle: https://stackoverflow.com/questions/7478…n-opencv-python
VG Klemens
Hallo Ralf, darf ich dein rohes Bild mal nehmen um mit ImageJ eine FF-Korrektur zu probieren?
Danke, Klemens
Hallo Ralf. Ich hab irgendwie den Thread von damals aus den Augen verloren. Da hab ich imageJ "angepriesen". Ich weiß zwar nicht, was du genau vor hast mit Light, Dark, etc. aber mit ImageJ kannst du so ziemlich alle Operationen, die man sich vorstellen kann natürlich einzeln nacheinander machen oder aber diese einmal vormachen und in einem Programmfile speichern (verschiedene Sprachen möglich), anpassen, "abspielen". Es wird sehr viel im akademischen Bereich entwickelt und verwendet, kann also nicht so schlecht sein. Ein LEGO Baukasten für image processing.
Alleine unter Process gibt es zig Operationen, die für das Image processing ausreichen. Und dann gibt es noch Plugins für fast jeden Zweck.
@Bernd Interessante Software: https://micro-manager.org/
Ich hab da mal mit verschiedenen Kameras herumgespielt und meinen motorisierten Tisch angesteuert.
VG Klemens
Vor allem ab 40x10 ist das Licht schon so stark gebündelt, dass sich das Bleaching bemerkbar macht. Beim 10x10 seh ich so gut wie kein Bleaching. Ich hab dafür nur LEDs mit ca. 2-3 W im Einsatz.
Und warum dimmst du dann nicht?
Ein wenig dimme ich schon. Aber bei zu wenig Anregung wird das Signal/Rausch-Verhältnis mit meiner Kamera so schlecht bzw. kann Falschlicht (daher "Dunkelkammer") einen Schleier verursachen. Ein wenig Energie muss man schon draufbrennen. Bei mir wie gesagt unter 1 s, dann ist bei meiner Konfiguration das Bleaching noch nicht ausgeprägt. 10 s Pause und dann das nächste Foto, entweder gleiche Ebene oder stacken.