anisotropic_diffusion
— Anisotrope Glättung eines Bildes.
anisotropic_diffusion(Image : ImageAniso : Mode, Contrast, Theta, Iterations : )
Der Operator anisotropic_diffusion
führt eine anisotrope
Diffusion des Eingabebildes Image
nach dem Modell von
Perona und Malik durch. Dieser Vorgang wird auch als nichtlinear
isotrope Diffusion bezeichnet. Ordnet man dem Bild eine
Grauwertfunktion u zu, so ist der Algorithmus eine
Diskretisierung der partiellen Differentialgleichung
mit dem durch Image
definierten Anfangswert zu einem Zeitpunkt . Die Gleichung wird
dabei Iterations
mal in Zeitschritten der Länge
Theta
iteriert, so dass das Ausgabebild ImageAniso
die Grauwertfunktion zum Zeitpunkt
zeigt.
Ziel der anisotropen Diffusion ist es, in flächigen Bildbereichen
Bildstörungen wie Rauschen zu eliminieren, ohne dabei Bildkanten zu
verwischen. Die Unterscheidung zwischen Kanten und Flächen wird
durch den Schwellwert Contrast
für die Größe der
Grauwertdifferenz zwischen benachbarten Pixeln getroffen.
Contrast
wird auch als Kontrastparameter bezeichnet und mit
c abgekürzt.
Der variable Diffusionskoeffizient g kann dabei verschiedenen
monoton fallenden Funktionen mit Werten zwischen 0 und
1 folgen und bestimmt das Antwortverhalten des
Diffusionsvorganges auf eine Kante. Über den Parameter
Mode
stehen die folgenden Funktionen zur Verfügung:
Die Wahl der Funktion , wenn Mode
auf
'parabolic' gesetzt wird, garantiert, dass die zugehörige
Differentialgleichung parabolisch ist, so dass eine
Wohlgestelltheitstheorie für das Problem existiert und das
Verfahren für beliebige Schrittweiten Theta
stabil ist. In
diesem Falle bleibt es aber bei einer leichten Diffusion auch über
Kanten hinweg, deren Stärke c übersteigt.
Die in der Veröffentlichung von Perona und Malik verwendete
Funktion bei Wahl von 'perona-malik' für Mode
besitzt nicht die theoretischen Eigenschaften von ,
hat sich in der Praxis aber dennoch als ausreichend stabil
erwiesen. Die theoretische Instabilität zeigt sich in einer
leichten Schärfung von starken Kanten.
Die von Weickert vorgeschlagene Wahl bei
Mode
='weickert' mit der Konstanten C=3.31488 ist
eine Steigerung von im Bezug auf die
Kantenschärfe. Der Übergang zwischen Glättung und Schärfung
erfolgt hier sehr abrupt an der Stelle x = c^2.
Das Konzept der Glättungsfilter ist in der Einleitung zum Kapitel Filter / Glättung beschrieben.
Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben wird. Weitere Informationen können im Kapitel Filter gefunden werden.
Image
(input_object) (multichannel-)image(-array) →
object (byte / uint2 / real)
Eingabebild.
ImageAniso
(output_object) image(-array) →
object (byte / uint2 / real)
Ausgabebild.
Mode
(input_control) string →
(string)
Diffusionskoeffizient als Funktion der Kantenstärke.
Defaultwert: 'weickert'
Werteliste: 'parabolic' , 'perona-malik' , 'weickert'
Contrast
(input_control) real →
(real)
Kontrastparameter.
Defaultwert: 5.0
Wertevorschläge: 2.0, 5.0, 10.0, 20.0, 50.0, 100.0
Restriktion: Contrast > 0
Theta
(input_control) real →
(real)
Zeitschritt.
Defaultwert: 1.0
Wertevorschläge: 0.5, 1.0, 3.0
Restriktion: Theta > 0
Iterations
(input_control) integer →
(integer)
Anzahl Iterationen.
Defaultwert: 10
Wertevorschläge: 1, 3, 10, 100, 500
Restriktion: Iterations >= 1
bilateral_filter
,
guided_filter
J. Weickert; „'Anisotropic Diffusion in Image Processing'; PhD
Thesis; Fachbereich Mathematik, Universität Kaiserslautern; 1996.
P. Perona, J. Malik; „Scale-space and edge detection using
anisotropic diffusion“; Transactions on Pattern Analysis and
Machine Intelligence 12(7), pp. 629-639; IEEE; 1990.
G. Aubert, P. Kornprobst; „Mathematical Problems in Image
Processing“; Applied Mathematical Sciences 147; Springer, New
York; 2002.
Foundation