KlassenKlassenKlassenKlassen | | | | Operatoren

mean_curvature_flowmean_curvature_flowMeanCurvatureFlowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlow (Operator)

Name

mean_curvature_flowmean_curvature_flowMeanCurvatureFlowmean_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)

Herror mean_curvature_flow(Hobject Image, Hobject* ImageMCF, const HTuple& Sigma, const HTuple& Theta, const HTuple& Iterations)

HImage HImage::MeanCurvatureFlow(const HTuple& Sigma, const HTuple& Theta, const HTuple& Iterations) const

HImageArray HImageArray::MeanCurvatureFlow(const HTuple& Sigma, const HTuple& Theta, const HTuple& Iterations) const

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

void HOperatorSetX.MeanCurvatureFlow(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*ImageMCF, [in] VARIANT Sigma, [in] VARIANT Theta, [in] VARIANT Iterations)

IHImageX* HImageX.MeanCurvatureFlow(
[in] double Sigma, [in] double Theta, [in] Hlong Iterations)

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_flowMeanCurvatureFlowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlow wendet die Krümmungsfluss- oder intrinsische Wärmeleitungsgleichung

  u_t = div(grad u/|grad u|) |grad u| = curv(u) |grad u|

auf die durch das Eingabebild ImageImageImageImageImageimage zu einem Zeitpunkt t_0 = 0 definierte Grauwertfunktion u an. Die diskretisierte Gleichung wird in IterationsIterationsIterationsIterationsIterationsiterations Zeitschritten der Länge ThetaThetaThetaThetaThetatheta gelöst, so dass das Ausgabebild ImageMCFImageMCFImageMCFImageMCFImageMCFimageMCF die Grauwertfunktion zur Zeit IterationsIterationsIterationsIterationsIterationsiterations * ThetaThetaThetaThetaThetatheta enthält.

Der Krümmungsfluss bewirkt eine Glättung von ImageImageImageImageImageimage 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 SigmaSigmaSigmaSigmaSigmasigma bestimmt die Stärke dieser Glättung als Standardabweichung des zugehörigen Gauß-Faltungskernes, wie er auch im Operator isotropic_diffusionisotropic_diffusionIsotropicDiffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion zur isotropen Glättung eines Bildes verwendet wird.

Parallelisierung

Parameter

ImageImageImageImageImageimage (input_object)  (multichannel-)image(-array) objectHImageHImageHImageHImageXHobject (byte / uint2 / real)

Eingabebild.

ImageMCFImageMCFImageMCFImageMCFImageMCFimageMCF (output_object)  image(-array) objectHImageHImageHImageHImageXHobject * (byte / uint2 / real)

Ausgabebild.

SigmaSigmaSigmaSigmaSigmasigma (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Glättungsparameter für Ableitungsoperator.

Defaultwert: 0.5

Wertevorschläge: 0.0, 0.1, 0.5, 1.0

Restriktion: Sigma >= 0

ThetaThetaThetaThetaThetatheta (input_control)  real HTupleHTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double) (double)

Zeitschritt.

Defaultwert: 0.5

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

Restriktion: 0 < Theta <= 0.5

IterationsIterationsIterationsIterationsIterationsiterations (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (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


KlassenKlassenKlassenKlassen | | | | Operatoren