Mathematics of Nonlinear Diffusion in Flow Visualization
 
Using the Applet

where v is the vector field, u some image and
the diffusion tensor that controls diffusion of the image u via the functions and G. Together with the matrices B(v) we get a linear diffusion along the streamlines of v and a Perona Malik behavior orthogonal to v.
The variable t in the partial differential equation is called the scale parameter, i.e. for each t we get a modified version of the image u_{0} with which we started the computation. In general we can start with an arbitrary image (a nice gimmick would be to use a picture of yourself...), but we use a randomized pixel image (a white noise image).
Since every diffusion process has a smoothing effect that in images decreases the contrast, we add a so called source term on the righthand side of the differential equation that works against the loss of contrast.
We discretize the equation using linear finite elements and a semi implicit time stepping. That means we solve the matrix equation
and so proceed, starting from the random image, in little steps of length from scale n to the next scale n+1. We call the matrices M^{n} and L^{n} the mass respectively stiffness matrix of the scale n.
Press the "Reset" button to load the parameters, you have typed in and to create the new starting image. Press the "Step" button to perfom one time step of the anisotropic nonlinear diffusion evolution.
Sigma  The time step width for the regularizing mollification step.  
 Tau  The time step width for the nonlinear diffusion step.  
 K  Parameter for the Perona Malik function G. The smaller this value is the more will the streamlines be clustered during the nonlinear diffusion step.  
 LinDiff  This is the constant linear diffusion coefficient that steers the diffusion along streamlines. The greater the value is the longer will the streamlines be.  
 CG Steps  Number of steps to perform with the linear solver. 