Digital Signal Processing Reference
In-Depth Information
PlugIn benotigt keinerlei Argumente, kann daher auch ohne Betei-
ligung eines Bilds ausgefuhrt werden,
3 ImageJ
PlugInFilter wird beim Start immer ein Bild (das aktuelle Bild)
ubergeben.
Wir verwenden in diesem Buch fast ausschließlich den zweiten Typ -
PlugInFilter - zur Realisierung von Bildverarbeitungsoperationen. Ein
Plugin vom Typ PlugInFilter muss mindestens die folgenden zwei Me-
thoden implementieren (Abb. 3.2) - setup() und run() :
int setup (String arg , ImagePlus img )
Diese Methode wird bei der Ausfuhrung eines Plugin von ImageJ
als erste aufgerufen, vor allem um zu uberprufen, ob die Spezifika-
tionen des Plugin mit dem ubergebenen Bild zusammenpassen. Die
Methode liefert einen Bitvektor (als int -Wert), der die Eigenschaf-
ten des Plugin beschreibt.
void run (ImageProcessor ip )
Diese Methode erledigt die tatsachliche Arbeit des Plugin. Der ein-
zige Parameter ip (ein Objekt vom Typ ImageProcessor )enthalt
das zu bearbeitende Bild und alle relevanten Informationen dazu.
Die run -Methode liefert keinen Ruckgabewert ( void ), kann aber das
ubergebene Bild verandern und auch neue Bilder erzeugen.
3.2.4 Beispiel-Plugin: inverter“
Am besten wir sehen uns diese Sache an einem konkreten Beispiel an. Wir
versuchen uns an einem einfachen Plugin, das ein 8-Bit-Grauwertbild in-
vertieren, also ein Positiv in ein Negativ verwandeln soll. Das Invertieren
der Intensitat ist eine typische Punktoperation, wie wir sie in Kap. 5 im
Detail behandeln. Unser Bild hat 8-Bit-Grauwerte im Bereich von 0 bis
zum Maximalwert 255 sowie eine Breite und Hohe von M bzw. N Pi-
xel. Die Operation ist sehr einfach: Der Wert jedes einzelnen Bildpixels
I ( u, v ) wird umgerechnet in einen neuen Pixelwert
I ( u, v ) 255 − I ( u, v ) ,
der den ursprunglichen Pixelwert ersetzt, und das fur alle Bildkoordina-
ten u =0 ...M
1 und v =0 ...N
1.
Plugin-Klasse MyInverter
Die vollstandige Auflistung des Java-Codes fur dieses Plugin findet
sich in Prog. 3.1. Das Programm enthalt nach den Import-Anweisungen
fur die notwendigen Java-Packages die Definition einer einzigen Klasse
MyInverter in einer Datei mit (wie in Java ublich) demselben Namen
( MyInverter .java ). Das Unterstreichungszeichen _ “ am Ende des Na-
mens ist wichtig, da ImageJ nur so diese Klasse als Plugin akzeptiert.
Search WWH ::




Custom Search