Digital Signal Processing Reference
In-Depth Information
BinaryProcessor
10.5
Implementierung
morphologischer Filter
Daneben bietet die Klasse
BinaryProcessor
(eine Unterklasse von
ByteProcessor
) mit den Methoden
void outline()
void skeletonize()
spezielle morphologische Operationen, die ausschließlich fur Binarbilder
definiert sind. Die Methode
outline()
implementiert die Extraktion
von Randern mit dem Strukturelement einer 8er-Nachbarschaft, wie in
Abschn. 10.2.7 beschrieben.
Die in der Methode
skeletonize()
implementierte Operation be-
zeichnet man als
”
Thinning“, das ist eine iterative Erosion, mit der
Strukturen auf eine Dicke von 1 Pixel reduziert werden, ohne sie da-
bei in mehrere Teile zu zerlegen. Dabei muss, abhangig vom aktuellen
Bildinhalt innerhalb der Filterregion (ublicherweise von der Große 3
×
3),
jeweils entschieden werden, ob tatsachlich eine Erosion durchgefuhrt wer-
den soll oder nicht. Die Operation erfolgt in mehreren Durchlaufen so
lange, bis sich im Ergebnis keine Anderungen mehr ergeben (s. beispiels-
weise [30, S. 535], [48, S. 517]). Die konkrete Implementierung in ImageJ
basiert auf einem e
zienten Algorithmus von Zhang und Suen [91]. Ab-
bildung 10.23 zeigt ein Beispiel fur die Anwendung von
skeletonize()
.
Die Verwendung der Methoden
outline()
und
skeletonize()
setzt
ein Objekt der Klasse
BinaryProcessor
voraus, das wiederum nur aus
einem bestehenden
ByteProcessor
erzeugt werden kann. Dabei wird an-
genommen, dass das ursprungliche Bild nur Werte mit 0 (Hintergrund)
und 255 (Vordergrund) enthalt. Das nachfolgende Beispiel zeigt den Ein-
satz von
outline()
innerhalb der
run()
-Methode eines ImageJ-Plugins:
1
import ij.process.*;
2
...
3
4
public void run(ImageProcessor ip) {
BinaryProcessor bp
5
= new BinaryProcessor((ByteProcessor)ip);
6
bp.outline();
7
8
}
Der neue
BinaryProcessor bp
legt ubrigens keine eigenen Bilddaten an,
sondern verweist lediglich auf die Bilddaten des ursprunglichen Bilds
ip
,
sodass jede Veranderung von
bp
(z. B. durch den Aufruf von
outline()
)
gleichzeitig auch
ip
betrifft.
Weitere morphologische Filter
Neben den in ImageJ direkt implementierten Methoden sind einzelne
Plugins und ganze Packages fur spezielle morphologische Filter online
4
4
http://rsb.info.nih.gov/ij/plugins