Skip to contents

anisotropicDiffusion Perona-Malik anisotropic diffusion to an Image object.

Usage

anisotropicDiffusion(image, alpha = 0.1, K = 1, n_iters = 1, target = "new")

Arguments

image

An 8-bit (8U) 3-channel Image object.

alpha

The amount of time to step forward by on each iteration (normally, it's between 0 and 1; default: 0.1).

K

Sensitivity to the edges (default: 1).

n_iters

The number of diffusion iterations.

target

The location where the results should be stored. It can take 3 values:

"new":

a new Image object is created and the results are stored inside (the default).

"self":

the results are stored back into image (faster but destructive).

An Image object:

the results are stored in another existing Image object. This is fast and will not replace the content of image but will replace that of target. Note that if target does not have the same dimensions, number of channels, and bit depth as image, an error may be thrown.

Value

If target="new", the function returns an Image object. If target="self", the function returns nothing and modifies image in place. If target is an Image object, the function returns nothing and modifies that Image object in place.

See also

Author

Simon Garnier, garnier@njit.edu

Examples

balloon <- image(system.file("sample_img/balloon1.png", package = "Rvision"))
balloon_smooth <- anisotropicDiffusion(balloon)