mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlow (Operator)

Name

mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlow — Anwendung der Krümmungsflussgleichung auf ein Bild.

Signatur

mean_curvature_flow(Image : ImageMCF : Sigma, Theta, Iterations : )

Herror mean_curvature_flow(const Hobject Image, Hobject* ImageMCF, double Sigma, double Theta, const Hlong Iterations)

Herror T_mean_curvature_flow(const Hobject Image, Hobject* ImageMCF, const Htuple Sigma, const Htuple Theta, const Htuple Iterations)

void MeanCurvatureFlow(const HObject& Image, HObject* ImageMCF, const HTuple& Sigma, const HTuple& Theta, const HTuple& Iterations)

HImage HImage::MeanCurvatureFlow(double Sigma, double Theta, Hlong Iterations) const

static void HOperatorSet.MeanCurvatureFlow(HObject image, out HObject imageMCF, HTuple sigma, HTuple theta, HTuple iterations)

HImage HImage.MeanCurvatureFlow(double sigma, double theta, int iterations)

Beschreibung

Der Operator mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlowMeanCurvatureFlow wendet die Krümmungsfluss- oder intrinsische Wärmeleitungsgleichung auf die durch das Eingabebild ImageImageImageImageimage zu einem Zeitpunkt definierte Grauwertfunktion u an. Die diskretisierte Gleichung wird in IterationsIterationsIterationsIterationsiterations Zeitschritten der Länge ThetaThetaThetaThetatheta gelöst, so dass das Ausgabebild ImageMCFImageMCFImageMCFImageMCFimageMCF die Grauwertfunktion zur Zeit enthält.

Der Krümmungsfluss bewirkt eine Glättung von ImageImageImageImageimage in Richtung der Bildkanten, also entlang der Niveaulinien von u, während senkrecht zur Kantenrichtung keine Glättung durchgeführt wird und die Ränder von Bildobjekten somit nicht verwischen. Um die Kantenrichtungen insbesondere bei verrauschten Eingabedaten stabiler zu bestimmen, kann der Berechnung der Grauwertgradienten ein zusätzlicher isotroper Glättungsschritt vorgeschaltet werden. Der Parameter SigmaSigmaSigmaSigmasigma bestimmt die Stärke dieser Glättung als Standardabweichung des zugehörigen Gauß-Faltungskernes, wie er auch im Operator isotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusionIsotropicDiffusion zur isotropen Glättung eines Bildes verwendet wird.

Die folgenden Abbildungen zeigen den Effekt der Parameter SigmaSigmaSigmaSigmasigma, ThetaThetaThetaThetatheta, und IterationsIterationsIterationsIterationsiterations. Zuerst wird das Eingabebild zusammen mit dem Ergebnis dargestellt, das man mit den Defaultwerten erhält.

(1) (2)
(1) Eingabebild. (2) Ergebnis bei Verwendung der Defaultwerte.

In den folgenden Abbildungen werden die Ergebnisse dargestellt, die man erhält, wenn jeweils ein Parameterwert verändert wird, während die anderen beiden auf ihren jeweiligen Defaultwert gesetzt sind.

SigmaSigmaSigmaSigmasigma steuert die Stärke der Glättung, die vor der Berechnung der Grauwertgradienten durchgeführt wird. Es sollten keine zu großen Werte für SigmaSigmaSigmaSigmasigma verwendet werden, da dies zu unerwünschten Effekten führen kann.

(1) (2) (3)
(1) Sigma = 0.0. (2) Sigma = 1.0. (3) Sigma = 10.0.

ThetaThetaThetaThetatheta steuert die Schrittweite innerhalb des iterativen Glättungsprozesses. Größere Werte führen zu einer stärkeren Glättung.

(1) (2) (3)
(1) Theta = 0.1. (2) Theta = 0.2. (3) Theta = 0.4.

IterationsIterationsIterationsIterationsiterations legt die Anzahl von Iterationen fest, die durchgeführt werden. Mit steigender Anzahl von Iterationen nimmt auch die Laufzeit zu. Darüberhinaus kann eine hohe Anzahl von Iterationen zu einem Verlust der Bildstruktur im geglätteten Bild führen.

(1) (2) (3)
(1) Iterations = 1. (2) Iterations = 50. (3) Iterations = 100.

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.

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

Ausgabebild.

SigmaSigmaSigmaSigmasigma (input_control)  real HTupleHTupleHtuple (real) (double) (double) (double)

Glättungsparameter für Ableitungsoperator.

Defaultwert: 0.5

Wertevorschläge: 0.0, 0.1, 0.5, 1.0

Restriktion: Sigma >= 0

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

Zeitschritt.

Defaultwert: 0.5

Wertevorschläge: 0.1, 0.2, 0.3, 0.4, 0.5

Restriktion: 0 < Theta <= 0.5

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

Anzahl Iterationen.

Defaultwert: 10

Wertevorschläge: 1, 5, 10, 20, 50, 100, 500

Restriktion: Iterations >= 1

Literatur

M. G. Crandall, P. Lions; „Convergent Difference Schemes for Nonlinear Parabolic Equations and Mean Curvature Motion“; Numer. Math. 75 pp. 17-41; 1996.
G. Aubert, P. Kornprobst; „Mathematical Problems in Image Processing“; Applied Mathematical Sciences 147; Springer, New York; 2002.

Modul

Foundation