Kapitel 2: Image J Software für digitale Bilder Eigenschaften von Image J Weitere Informationen zu ImageJ und Java BV: Kap 2 Image J
1. Software für digitale Bilder Früher: Software für Bildverarbeitung Zugang zu teuren Werkzeugen oder Eigenbau für einfache Anwendungen Problem: firmenspezifische Dateiformate Heute: Wenige Standards für Bildformate Basisunterstützung durch Programmbibliotheken mit Standard-APIs Software zur Bildbearbeitung Beispiele: Adobe Photoshop, Corel Paint, .. Manipulation von Bildern Eigene Komponenten programmieren: umständlich Software zur Bildverarbeitung Beispiele: MatLab, ImageMagick, IDL, … Algorithmen programmieren Unterstützung durch Bibliotheken BV: Kap 2 Image J
2. Eigenschaften von ImageJ Mischung beider Welten Fertige Werkzeuge zur Manipulation Erweiterung durch eigene Softwarekomponenten Implementiert in Java: Plattformunabhängig Eigene Komponenten über Plugins: on-the-fly übersetzen und ausführen Frei verfügbar ohne Lizenzkosten Entwickler: Wayne Rasband am U.S. National Institute of Health (NIH) http://rsb.info.nih.gov/ij BV: Kap 2 Image J
2.1 Features ImageJ optional mit Java-Runtime Eigenständige Anwendung oder Applet Satz von fertigen Werkzeugen: Erzeugen, Visualisieren, Editieren, Verarbeiten, Analysieren von Bildern In mehreren Dateiformaten Bildfolgen (Stacks) Plugin- Mechanismus Erweiterung der Funktionalität Plugins im Plugin-Verzeichnis Zusätzlich: Makro-Sprache Ohne Java-Kenntnisse Im Folgenden nicht betrachtet BV: Kap 2 Image J
2.2 Fertige Werkzeuge BV: Kap 2 Image J
Details Unterstützte Formate: TIFF (nur unkomprimiert), JPEG, GIF, PNG, BMP, sonstige Spezialformate Öffnen einer Bilddatei erzeugt zusätzlichen Frame Vielzahl von Beispielbildern Operationen werden auf dem aktuell selektierten Bild ausgeführt Undo-Mechanismus für einen Bearbeitungsschritt, auch für eigene Plugins Beschreibung der Funktionen: http://rsb.info.nih.gov/ij/docs BV: Kap 2 Image J
2.3 ImageJ-Plugins In Java geschriebene Softwaremodule, die in ImageJ eingebunden werden Plugin erweitert Funktionalität von ImageJ Verwaltung über Plugin-Menü Zwei Arten von Plugins PlugIn: keine Argumente, d.h. kein Bild PlugInFilter: beim Start wird aktuelles Bild übergeben von uns verwendet int setup(String arg, ImagePlus img): Initial ausgeführt void run(ImageProcessor ip): Tatsächliche Arbeit ip: das zu verarbeitende Bild BV: Kap 2 Image J
Softwarestruktur BV: Kap 2 Image J
Beispiel: „inverter“-Plugin 8-Bit-Grauwertbild invertieren Typische Punktoperation (Kapitel 5) Unser Bild (z.B. Dot_Blot.jpg) Grauwerte: 0 .. 255 Pixel: M (Breite) x N (Höhe) I‘(u,v) = 255 – I(u,v) für u = 0..M-1 v = 0..N-1 Hinweise: Konvention: Klassennamen enden mit _ DOES_8G: 8-Bit-Grauwertbilder werden bearbeitet BV: Kap 2 Image J
Quellcode BV: Kap 2 Image J
Erläuterung getWidth(), getHeight(): Breite, Höhe int getPixel(int x, int y): Wert an Position (x,y) putPixel(int x, int y, int value): Pixelwert setzen Quellcode-Datei: MyInverter_.java Verzeichnis: <ij>/plugins/ oder Unterordner Erstellen und übersetzen mit eingebautem Editor und JDK Besser: eclipse Originalbild wird potentiell verändert Edit -> Undo zum Rückfall Plugin-Tutorial: http://mtd.fh-hagenberg.at/depot/imaging/imagej/ BV: Kap 2 Image J
Literatur Homepage zum Buch: http://www.imagingbook.com Homepage zu ImageJ: http://rsb.info.nih.gov/ij/ Beispielbilder: http://rsb.info.nih.gov/ij/images/ Kurzreferenz: http://www.imagingbook.com/fileadmin/de/material2/IJ-Kurzreferenz.pdf Plugin-Tutorial: http://mtd.fh-hagenberg.at/depot/imaging/imagej/ BV: Kap 2 Image J