120 likes | 225 Views
Kapitel 2: Image J. Software für digitale Bilder Eigenschaften von Image J Weitere Informationen zu ImageJ und Java. 1. Software für digitale Bilder. Früher: Software für Bildverarbeitung Zugang zu teuren Werkzeugen oder Eigenbau für einfache Anwendungen
E N D
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