mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlowmean_curvature_flow (算子)

名称

mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlowmean_curvature_flow — 将平均曲率流应用于图像。

签名

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)

def mean_curvature_flow(image: HObject, sigma: float, theta: float, iterations: int) -> HObject

描述

算子 mean_curvature_flowmean_curvature_flowMeanCurvatureFlowMeanCurvatureFlowMeanCurvatureFlowmean_curvature_flow applies the mean curvature flow or intrinsic heat equatio to the gray value function u defined by the input image ImageImageImageImageimageimage at a time . 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_diffusionIsotropicDiffusionIsotropicDiffusionIsotropicDiffusionisotropic_diffusion for isotropic image smoothing.

The following images show the effect of the parameters SigmaSigmaSigmaSigmasigmasigma, ThetaThetaThetaThetathetatheta, and IterationsIterationsIterationsIterationsiterationsiterations. First, the input image is shown together with the result that is achieved if all parameters are set to their default values.

( 1) ( 2)
(1) Input image. (2) Result when using the default values.

In the following images, the results are shown that are achieved if one parameter is varied while setting the other two parameters to their default values.

SigmaSigmaSigmaSigmasigmasigma controls the amount of smoothing, prior to the computation of the gray value gradient. Be careful with very large values for SigmaSigmaSigmaSigmasigmasigma, because they may lead to undesired effects.

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

ThetaThetaThetaThetathetatheta controls the step size during the iterative smoothing process. Larger values lead to a stronger smoothing.

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

IterationsIterationsIterationsIterationsiterationsiterations controls the number of iterations that are performed. With an increasing number of iterations, the runtime increases, as well. Furthermore, a large number of iterations may lead to a loss of structure in the smoothed image.

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

注意

请注意,若使用域缩减后的图像作为输入,滤波器算子可能会返回意外结果。请参阅 滤波器 一章

执行信息

参数

ImageImageImageImageimageimage (输入对象)  (multichannel-)image(-array) objectHImageHObjectHImageHobject (byte / uint2 / real)

输入图像。

ImageMCFImageMCFImageMCFImageMCFimageMCFimage_mcf (输出对象)  image(-array) objectHImageHObjectHImageHobject * (byte / uint2 / real)

输出图像。

SigmaSigmaSigmaSigmasigmasigma (输入控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Smoothing parameter for derivative operator.

默认值: 0.5

建议值: 0.0, 0.1, 0.5, 1.0

限制: Sigma >= 0

ThetaThetaThetaThetathetatheta (输入控制)  real HTuplefloatHTupleHtuple (real) (double) (double) (double)

Time step.

默认值: 0.5

建议值: 0.1, 0.2, 0.3, 0.4, 0.5

限制: 0 < Theta <= 0.5

IterationsIterationsIterationsIterationsiterationsiterations (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Number of iterations.

默认值: 10

建议值: 1, 5, 10, 20, 50, 100, 500

限制: Iterations >= 1

参考文献

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.

模块

基础