medpy.filter.smoothing.anisotropic_diffusion#

medpy.filter.smoothing.anisotropic_diffusion(img, niter=1, kappa=50, gamma=0.1, voxelspacing=None, option=1)[source]#

Edge-preserving, XD Anisotropic diffusion.

To achieve the best effects, the image should be scaled to values between 0 and 1 beforehand.

Parameters:
imgarray_like

Input image (will be cast to numpy.float).

niterinteger

Number of iterations.

kappainteger

Conduction coefficient, e.g. 20-100. kappa controls conduction as a function of the gradient. If kappa is low small intensity gradients are able to block conduction and hence diffusion across steep edges. A large value reduces the influence of intensity gradients on conduction.

gammafloat

Controls the speed of diffusion. Pick a value \(<= .25\) for stability.

voxelspacingtuple of floats or array_like

The distance between adjacent pixels in all img.ndim directions

option{1, 2, 3}

Whether to use the Perona Malik diffusion equation No. 1 or No. 2, or Tukey’s biweight function. Equation 1 favours high contrast edges over low contrast ones, while equation 2 favours wide regions over smaller ones. See [1] for details. Equation 3 preserves sharper boundaries than previous formulations and improves the automatic stopping of the diffusion. See [2] for details.

Returns:
anisotropic_diffusionndarray

Diffused image.

Notes

Original MATLAB code by Peter Kovesi, School of Computer Science & Software Engineering, The University of Western Australia, pk @ csse uwa edu au, <http://www.csse.uwa.edu.au>

Translated to Python and optimised by Alistair Muldal, Department of Pharmacology, University of Oxford, <alistair.muldal@pharm.ox.ac.uk>

Adapted to arbitrary dimensionality and added to the MedPy library Oskar Maier, Institute for Medical Informatics, Universitaet Luebeck, <oskar.maier@googlemail.com>

June 2000 original version. - March 2002 corrected diffusion eqn No 2. - July 2012 translated to Python - August 2013 incorporated into MedPy, arbitrary dimensionality -

References

[1]

P. Perona and J. Malik. Scale-space and edge detection using ansotropic diffusion. IEEE Transactions on Pattern Analysis and Machine Intelligence, 12(7):629-639, July 1990.

[2]

M.J. Black, G. Sapiro, D. Marimont, D. Heeger Robust anisotropic diffusion. IEEE Transactions on Image Processing, 7(3):421-432, March 1998.