Module: Perona-Malik Diffusion


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

module_box

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.