Flux Diffusion in ITK (Karl Krissian)

From NAMIC Wiki
Jump to: navigation, search
Home < Flux Diffusion in ITK (Karl Krissian)

Implementing the flux diffusion in ITK


File:FluxDiffusion.ppt

the current vtk implementation is in the slicer CVS

Current anisotropic diffusion in ITK

The current anisotropic diffusion implemented in ITK are:

  • the Perona and Malik equation
  • the curvature diffusion

They are both scalar anisotropic diffusion, without data attachment, and running on an explicit numerical scheme.

Flux diffusion equation

The Flux diffusion is a matrix flux diffusion:

\frac{\partial u}{\partial t} = div(M \nabla u) + \beta (u_0-u),

where u(t) is the evolving image, u0 = u(0) is the initial image, β is a data attachment coefficient and M is the diffusion matrix.

In the case of the flux diffusion, we re-write the vector field

F = M \nabla u,

in the basis of the gradient and the principal curvature directions of the smoothed image (in 3D):

F = \sum_{i=0}^{2} \phi_i(u_{e_i}) e_i,

with (e0,e1,e2) corresponding respectively to the smooth gradient, minimal and maximal curvature directions.

Numerical Scheme

We use a Jacobi or a Gauss-Seidel scheme, where the filtered image is the solution of an equation of the form

N'v = 0,

v is a vector representing the image and N is a nxn matrix, n being the total number of voxels. the diagonal part of N is detached from N:

N = P + D,

and the Jacobi numerical scheme consists in iterating

vn + 1 = - D - 1P'vn.