Beiträge von kljosc

    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

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

    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.

    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:

    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

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    und

    Der Inhalt kann nicht angezeigt werden, da Sie keine Berechtigung haben, diesen Inhalt zu sehen.

    .

    Vorab aber mal die Installation und die ersten praktischen Anwendungen:

    1. Unter https://imagej.net/software/fiji/downloads das für deine Rechnerarchitektur passende ZIP-File herunterladen und entpacken. Ich beziehe mich auf die Windows Version.
    2. ohne Leerzeichen im Pfad entpacken, z.B. c:\Fiji\
    3. c:\Fiji\fiji-windows-x64.exe starten.

    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.

    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 :99:)

    C=(R-D) * m / (F-D) = (R-D) * G

    • C = corrected image
    • R = raw image
    • F = flat field image
    • D = dark frame image
    • m = image-averaged value of (FD)
    • G = Gain = m * (F-D) * m/(F-D)

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

    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.