Learn R Programming

Rvision (version 0.6.0)

bilateralFilter: Edge-Preserving Noise Reduction with a Bilateral Filter

Description

bilateralFilter applies the bilateral filter to an image. This filter can reduce unwanted noise very well while keeping edges fairly sharp. However, it is very slow compared to most filters.

Usage

bilateralFilter(
  image,
  d = 5,
  sigma_color = 25,
  sigma_space = 25,
  target = "new",
  in_place = NULL
)

Arguments

image

An Image object.

d

The diameter in pixels of the filter neighborhood (default: 5).

sigma_color

The filter standard deviation in the color space (see Note; default: 25).

sigma_space

The filter standard deviation in the coordinate space (see Note; default: 25).

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.

in_place

Deprecated. Use target instead.

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

Image, gaussianBlur

Examples

Run this code
# NOT RUN {
balloon <- image(system.file("sample_img/balloon1.png", package = "Rvision"))
rnd <- image(array(sample(0:30, nrow(balloon) * ncol(balloon), replace = TRUE),
                   dim = c(nrow(balloon), ncol(balloon), 3)))
changeBitDepth(rnd, "8U", target = "self")
balloon_noisy <- balloon + rnd
balloon_bilateral <- bilateralFilter(balloon_noisy, 25)

# }

Run the code above in your browser using DataLab