ClassesClassesClassesClasses | | | | Operators

mean_curvature_flowmean_curvature_flowMeanCurvatureFlowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlow (Operator)

Name

mean_curvature_flowmean_curvature_flowMeanCurvatureFlowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlow — Apply the mean curvature flow to an image.

Signature

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)

Description

The operator mean_curvature_flowmean_curvature_flowMeanCurvatureFlowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlow applies the mean curvature flow or intrinsic heat equatio

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

to the gray value function u defined by the input image ImageImageImageImageImageimage at a time t_0 = 0. The discretized equation is solved in IterationsIterationsIterationsIterationsIterationsiterations time steps of length ThetaThetaThetaThetaThetatheta, so that the output image contains the gray value function at the time IterationsIterationsIterationsIterationsIterationsiterations * ThetaThetaThetaThetaThetatheta .

The mean curvature flow causes a smoothing of ImageImageImageImageImageimage in the direction of the edges in the image, i.e. along the contour lines of u, while perpendicular to the edge direction no smoothing is performed and hence the boundaries of image objects are not smoothed. To detect the image direction more robustly, in particular on noisy input data, an additional isotropic smoothing step can precede the computation of the gray value gradients. The parameter SigmaSigmaSigmaSigmaSigmasigma determines the magnitude of the smoothing by means of the standard deviation of a corresponding Gaussian convolution kernel, as used in the operator isotropic_diffusionisotropic_diffusionIsotropicDiffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion for isotropic image smoothing.

Parallelization

Parameters

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

Input image.

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

Output image.

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

Smoothing parameter for derivative operator.

Default value: 0.5

Suggested values: 0.0, 0.1, 0.5, 1.0

Restriction: Sigma >= 0

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

Time step.

Default value: 0.5

Suggested values: 0.1, 0.2, 0.3, 0.4, 0.5

Restriction: 0 < Theta <= 0.5

IterationsIterationsIterationsIterationsIterationsiterations (input_control)  integer HTupleHTupleHTupleVARIANTHtuple (integer) (int / long) (Hlong) (Hlong) (Hlong) (Hlong)

Number of iterations.

Default value: 10

Suggested values: 1, 5, 10, 20, 50, 100, 500

Restriction: Iterations >= 1

References

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.

Module

Foundation


ClassesClassesClassesClasses | | | | Operators