anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusion (Operator)

Name

anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusion — Anisotrope Glättung eines Bildes.

Signatur

anisotropic_diffusion(Image : ImageAniso : Mode, Contrast, Theta, Iterations : )

Herror anisotropic_diffusion(const Hobject Image, Hobject* ImageAniso, const char* Mode, double Contrast, double Theta, const Hlong Iterations)

Herror T_anisotropic_diffusion(const Hobject Image, Hobject* ImageAniso, const Htuple Mode, const Htuple Contrast, const Htuple Theta, const Htuple Iterations)

void AnisotropicDiffusion(const HObject& Image, HObject* ImageAniso, const HTuple& Mode, const HTuple& Contrast, const HTuple& Theta, const HTuple& Iterations)

HImage HImage::AnisotropicDiffusion(const HString& Mode, double Contrast, double Theta, Hlong Iterations) const

HImage HImage::AnisotropicDiffusion(const char* Mode, double Contrast, double Theta, Hlong Iterations) const

HImage HImage::AnisotropicDiffusion(const wchar_t* Mode, double Contrast, double Theta, Hlong Iterations) const   (Nur Windows)

static void HOperatorSet.AnisotropicDiffusion(HObject image, out HObject imageAniso, HTuple mode, HTuple contrast, HTuple theta, HTuple iterations)

HImage HImage.AnisotropicDiffusion(string mode, double contrast, double theta, int iterations)

Beschreibung

Der Operator anisotropic_diffusionanisotropic_diffusionAnisotropicDiffusionAnisotropicDiffusionAnisotropicDiffusion führt eine anisotrope Diffusion des Eingabebildes ImageImageImageImageimage 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 ImageImageImageImageimage definierten Anfangswert zu einem Zeitpunkt . Die Gleichung wird dabei IterationsIterationsIterationsIterationsiterations mal in Zeitschritten der Länge ThetaThetaThetaThetatheta iteriert, so dass das Ausgabebild ImageAnisoImageAnisoImageAnisoImageAnisoimageAniso 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 ContrastContrastContrastContrastcontrast für die Größe der Grauwertdifferenz zwischen benachbarten Pixeln getroffen. ContrastContrastContrastContrastcontrast 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 ModeModeModeModemode stehen die folgenden Funktionen zur Verfügung: Die Wahl der Funktion , wenn ModeModeModeModemode auf 'parabolic'"parabolic""parabolic""parabolic""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 ThetaThetaThetaThetatheta 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'"perona-malik""perona-malik""perona-malik""perona-malik" für ModeModeModeModemode 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 ModeModeModeModemode='weickert'"weickert""weickert""weickert""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.

Achtung

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.

Ausführungsinformationen

Parameter

ImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHobject (byte / uint2 / real)

Eingabebild.

ImageAnisoImageAnisoImageAnisoImageAnisoimageAniso (output_object)  image(-array) objectHImageHImageHobject * (byte / uint2 / real)

Ausgabebild.

ModeModeModeModemode (input_control)  string HTupleHTupleHtuple (string) (string) (HString) (char*)

Diffusionskoeffizient als Funktion der Kantenstärke.

Defaultwert: 'weickert' "weickert" "weickert" "weickert" "weickert"

Werteliste: 'parabolic'"parabolic""parabolic""parabolic""parabolic", 'perona-malik'"perona-malik""perona-malik""perona-malik""perona-malik", 'weickert'"weickert""weickert""weickert""weickert"

ContrastContrastContrastContrastcontrast (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Kontrastparameter.

Defaultwert: 5.0

Wertevorschläge: 2.0, 5.0, 10.0, 20.0, 50.0, 100.0

Restriktion: Contrast > 0

ThetaThetaThetaThetatheta (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Zeitschritt.

Defaultwert: 1.0

Wertevorschläge: 0.5, 1.0, 3.0

Restriktion: Theta > 0

IterationsIterationsIterationsIterationsiterations (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Anzahl Iterationen.

Defaultwert: 10

Wertevorschläge: 1, 3, 10, 100, 500

Restriktion: Iterations >= 1

Alternativen

bilateral_filterbilateral_filterBilateralFilterBilateralFilterBilateralFilter, guided_filterguided_filterGuidedFilterGuidedFilterGuidedFilter

Literatur

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.

Modul

Foundation