Operators

# isotropic_diffusion (Operator)

## Name

isotropic_diffusion — Perform an isotropic diffusion of an image.

## Signature

isotropic_diffusion(Image : SmoothedImage : Sigma, Iterations : )

## Description

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

If Iterations 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 Image at a time t_0. This equation is then solved up to a time t_0 + 1/2 Sigma^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 Iterations and independent of Sigma in this case. For small values of Iterations, the computational accuracy is very low, however. For this reason, choosing Iterations < 3 is not recommended.

For smaller values of Sigma, 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 Sigma, it is typically faster for large values of Sigma if few iterations are chosen (e.g., Iterations = 3).

## Parallelization

• Multithreading type: reentrant (runs in parallel with non-exclusive operators).
• Automatically parallelized on tuple level.
• Automatically parallelized on channel level.

## Parameters

Image (input_object)  (multichannel-)image(-array) object (byte / uint2 / real)

Input image.

SmoothedImage (output_object)  image(-array) object (byte / uint2 / real)

Output image.

Sigma (input_control)  real (real)

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

Iterations (input_control)  integer (integer)

Number of iterations.

Default value: 10

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

Restriction: Iterations >= 0

## Module

Foundation

 Operators