image = | anisotropicDiffusion3dImg (inImg3d,inNbTimeSteps,inSharpness,inAnisotropy) |
Anisotropic diffusion smoothing filter on 3d images.
The anisotropic diffusion filter is a non-linear iterative smoothing filter that allows to eliminate noise and small-scale details from an image while preserving or even enhancing the edge structure.
Filter parametrization
Main parameters
The main parameters of this filter are :
which define number of time steps (number of iteration) of filter. Default parameter value (10) is in general a good compromis between convergence and computation time considerations.
parameter allows to control egde preservation. A great value for
parameter results in a highly preservated edges.
parameter allows to control smoothing along tensor main direction (it can approximately be seen as a parameter controlling smoothing along gradient direction). A small value for
parameter results in a high smoothing along gradient direction.
- Note
- Note that
and
are highly correlated since one can increase first one and decrease second one to increase image smoothing while preserving algorithm edge enhancing properties. It is generally a good idea for user to start with following parameter values :
Then user should try to modify
and
values to find an adpated cupple of value.
An example of anisotropic diffusion smoothing of an image is illustrated in 2d case : see Anisotropic diffusion 2d.
Secondary parameters
Some secondary parameters are also associated to this filter (user should modify these parameters with caution since some of them can generate heavy computation cost) :
is the standard deviation used to compute image gradient (see Gaussian Gradient 3d).
is the standard deviation used to compute image inertia matrix smoothing (see Gaussian Smoothing 3d).
allows to define the minimum distribution spread ratio which should be reach regards to an infinite Gaussian distribution for previous gaussian operations (gradient and smoothing).
is the number of angles along anisotropic tensor will be projected
allows to restrain local smoothing window size during processing
allows to modify local line integral convolution length
allows to define spatial step used for local line integral convolution
- See also
- Joachil Weickert, Theorical foundations of anisotropic diffusion in image processing, Computing, Suppl. 141, pp. 221-236, 1996.
-
D. Tschumperle, Curvature-Preserving Regularization of Multi-Valued Images using PDE's, European Conference on Computer Vision (ECCV'06), LNCS Vol. 3952, pp. 295-307, Graz/Austria, May 2006, ISSN : 302-9743.
Example of Python code :
Example imports
import PyIPSDK
import PyIPSDK.IPSDKIPLFiltering as filter
Code Example
inImg3d = PyIPSDK.loadTiffImageFile(inputImgPath)
outImg = filter.anisotropicDiffusion3dImg(inImg3d, 10, 0.9, 0.6)
Example of C++ code :
Example informations
Header file
#include <IPSDKIPL/IPSDKIPLFiltering/Processor/AnisotropicDiffusion3dImg/AnisotropicDiffusion3dImg.h>
Code Example
ImagePtr pOutImg = anisotropicDiffusion3dImg(pInImg3d, inNbTimeSteps, inSharpness, inAnisotropy);