applies a Perona-Malik diffusion filter to image.

PeronaMalikFilter[image, t]
specifies the amount of diffusion t to be applied.

PeronaMalikFilter[image, t, k]
uses a conductance parameter k.

PeronaMalikFilter[image, t, k, ]
applies a Gaussian regularization of width to the image gradient in the conductance function.


  • Perona-Malik filtering is an inhomogeneous diffusion method typically used for smoothing images while preserving edges.
  • PeronaMalikFilter works on arbitrary grayscale or multichannel images, operating on each channel separately.
  • applies the diffusion equation partial_tf=del . c_(k)(TemplateBox[{{{del , _, sigma}, f}}, Abs]) del f to every image channel .
  • The function c_(k)(TemplateBox[{{{del , _, sigma}, f}}, Abs])=ⅇ^(-|del _sigmaf|^2/k^2) of the -regularized gradient norm TemplateBox[{{{del , _, sigma}, f}}, Abs] defines the conductance of the diffusion current. At edges where the gradient norm is large in comparison to k, diffusion is suppressed, thereby preserving edges.
  • In PeronaMalikFilter[image, t], t parameterizes the evolution of the diffusion and thereby the spatial range of the filter.
  • The conductance parameter k can take any positive value. The default value of k is Automatic, which assigns to k the 50% quantile of the gradient norm TemplateBox[{{del , f}}, Abs] of image. If more than one channel is present, the gradient norm of the channel average is taken into account.
  • The regularization parameter is the standard deviation of the Gaussian kernel , with which the image gradient is convolved. The -regularization makes the conductance term c_(k)(TemplateBox[{{{del , _, sigma}, f}}, Abs]) less susceptible to noise. If , a finite difference scheme is used to determine the gradient.
  • PeronaMalikFilter[image] is equivalent to PeronaMalikFilter[image, 1, Automatic, 0].
New in 8
New to Mathematica? Find your learning path »
Have a question? Ask support »