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. Ifkappa
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.