Operator Reference
isotropic_diffusion (Operator)
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
on the gray value function u with the initial value defined by the gray values of Image
at a time
. This equation is then solved up to a time , 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).
For an explanation of the concept of smoothing filters see the introduction of chapter Filters / Smoothing.
Attention
Note that filter operators may return unexpected results if an image with a reduced domain is used as input. Please refer to the chapter Filters.
Execution Information
- Multithreading type: reentrant (runs in parallel with non-exclusive operators).
- Multithreading scope: global (may be called from any thread).
- 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: 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: 10
Suggested values: 0, 3, 10, 100, 500
Restriction:
Iterations >= 0
Module
Foundation