HALCON Reference Manual 10.0.2
Table of Contents / Filters / Smoothing ClassesClassesClasses | | | Operators

isotropic_diffusionisotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion (Operator)

Name

isotropic_diffusionisotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion — Perform an isotropic diffusion of an image.

Signature

isotropic_diffusion(Image : SmoothedImage : Sigma, Iterations : )

Herror isotropic_diffusion(const Hobject Image, Hobject* SmoothedImage, double Sigma, const Hlong Iterations)

Herror T_isotropic_diffusion(const Hobject Image, Hobject* SmoothedImage, const Htuple Sigma, const Htuple Iterations)

Herror isotropic_diffusion(Hobject Image, Hobject* SmoothedImage, const HTuple& Sigma, const HTuple& Iterations)

HImage HImage::IsotropicDiffusion(const HTuple& Sigma, const HTuple& Iterations) const

HImageArray HImageArray::IsotropicDiffusion(const HTuple& Sigma, const HTuple& Iterations) const

void HOperatorSetX.IsotropicDiffusion(
[in] IHUntypedObjectX* Image, [out] IHUntypedObjectX*SmoothedImage, [in] VARIANT Sigma, [in] VARIANT Iterations)

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

static void HOperatorSet.IsotropicDiffusion(HObject image, out HObject smoothedImage, HTuple sigma, HTuple iterations)

HImage HImage.IsotropicDiffusion(double sigma, int iterations)

Description

The operator isotropic_diffusionisotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion performs an isotropic diffusion of the input image ImageImageImageImageimage. This corresponds to a convolution of the image matrix with a Gaussian mask of standard deviation SigmaSigmaSigmaSigmasigma. If the parameter IterationsIterationsIterationsIterationsiterations is set to 0, such a convolution is performed explicitly. For input images with a full ROI, isotropic_diffusionisotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion returns the same results as the operator derivate_gaussderivate_gaussderivate_gaussDerivateGaussDerivateGauss when choosing 'none'"none""none""none""none" for its parameter Component. If the gray value matrix is larger than the ROI of ImageImageImageImageimage the two operators differ since derivate_gaussderivate_gaussderivate_gaussDerivateGaussDerivateGauss takes the gray values outside of the ROI into account, while isotropic_diffusionisotropic_diffusionisotropic_diffusionIsotropicDiffusionIsotropicDiffusion mirrors the values at the boundary of the ROI in any case. The computational complexity increases linearly with the value of SigmaSigmaSigmaSigmasigma.

If IterationsIterationsIterationsIterationsiterations has a positive value the smoothing process is considered as an application of the heat equation

  u_t = laplace(u)

on the gray value function u with the initial value u = u_0 defined by the gray values of ImageImageImageImageimage at a time t_0. This equation is then solved up to a time t_0 + 1/2 SigmaSigmaSigmaSigmasigma^2 , which is equivalent to the above convolution, using an iterative procedure for parabolic partial differential equations. The computational complexity is proportional to the value of IterationsIterationsIterationsIterationsiterations and independent of SigmaSigmaSigmaSigmasigma in this case. For small values of IterationsIterationsIterationsIterationsiterations, the computational accuracy is very low, however. For this reason, choosing IterationsIterationsIterationsIterationsiterations < 3 is not recommended.

For smaller values of SigmaSigmaSigmaSigmasigma, the convolution implementation is typically the faster method. Since the runtime of the partial differential equation solver only depends on the number of iterations and not on the value of SigmaSigmaSigmaSigmasigma, it is typically faster for large values of SigmaSigmaSigmaSigmasigma if few iterations are chosen (e.g., IterationsIterationsIterationsIterationsiterations = 3).

Parallelization

Parameters

ImageImageImageImageimage (input_object)  image(-array) objectHImageHImageHImageXHobject (byte / uint2 / real)

Input image.

SmoothedImageSmoothedImageSmoothedImageSmoothedImagesmoothedImage (output_object)  image(-array) objectHImageHImageHImageXHobject * (byte / uint2 / real)

Output image.

SigmaSigmaSigmaSigmasigma (input_control)  real HTupleHTupleVARIANTHtuple (real) (double) (double) (double) (double)

Standard deviation of the Gauss distribution.

Default value: 1.0

Suggested values: 0.1, 0.5, 1.0, 3.0, 10.0, 20.0, 50.0

Restriction: Sigma > 0

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

Number of iterations.

Default value: 10

Suggested values: 0, 3, 10, 100, 500

Restriction: Iterations >= 0

Module

Foundation


Table of Contents / Filters / Smoothing ClassesClassesClasses | | | Operators
HALCON Reference Manual 10.0.2 Copyright © 1996-2011 MVTec Software GmbH