Module: Perona-Malik Diffusion
diffusion algorithm based on the concept proposed by P.Perona and J.Malik in an IEEE paper (July 1990)

| input port | type | description | data acceptors |
|---|---|---|---|
| inField | VNField | Regular Field |
| output port | type | description | data schemas |
|---|---|---|---|
| outField | VNRegularField | Regular Field |
|
| outObj | VNGeometryObject |
Description
The module smoothes a scalar quantity distribution according to the inhomogeneous diffusion (partial differential) equation using a finite difference method. That is why one can set the time iteration number and coefficient lambda which scales the single iteration time step. The idea is to have a relatively high diffusion coefficient in the interior of the distinct and approximately homogeneous area (volume) and a relatively low diffusion coefficient for the edges in order to prevent from blurring the edges. In this approach edges are associated with a high absolute value of the gradient. Conductance parameter K is used for defining a relation between the diffusion coefficient and the gradient according to formula exp(-(|gradient|/ K)^2 )
Input data
This module accepts any 2D or 3D regular field. However, the implementation is specifically designed for regular fields with the affine and orthogonal geometry
Output data
2D or 3D regular field
Computation parameters

Time iteration number and lambda are parameters for finite difference method (see Description)
Conductance parameter K is used for defining a relation between the diffusion coefficient and the gradient according to formula exp(-(|gradient|/ K)^2 )
Parameters nablaWeightIndex are useful in the case when the geometry lattice has different spatial steps for different directions (orthogonal lattice is assumed).
By default parameters nablaWeightIndex are consistent with affine base of the lattice as long as the base vectors have the following form
v0: [s0, 0, 0]
v1: [0, s1, 0]
v2: [0, 0, s2]
If the base vectors v0, v1, v2 have above-mentioned form, the default values of nablaWeightIndexI, nablaWeightIndexJ, and nablaWeightIndexK are 1/|s0|, 1/|s1| and 1/|s2| respectively
Presentation parameters
Presentation parameters are described in the common interfaces section under the Presentation Panel entry.