Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

filter2

2D Convolution Filter


Description

Filters an image using the fast 2D FFT convolution product.

Usage

filter2(x, filter, boundary = c("circular", "replicate"))

Arguments

x

An Image object or an array.

filter

An Image object or an array, with odd spatial dimensions. Must contain only one frame.

boundary

Behaviour at image borders. The default is to wrap the image around borders. For other modes see details.

Details

Linear filtering is useful to perform low-pass filtering (to blur images, remove noise...) and high-pass filtering (to detect edges, sharpen images). The function makeBrush is useful to generate filters.

The default "circular" behaviour at boundaries is to wrap the image around borders. In the "replicate" mode pixels outside the bounds of the image are assumed to equal the nearest border pixel value. Numeric values of boundary yield linear convolution by padding the image with the given value(s).

If x contains multiple frames, the filter is applied separately to each frame.

Value

An Image object or an array, containing the filtered version of x.

Author(s)

Andrzej Oleś, Gregoire Pau

See Also

Examples

x = readImage(system.file("images", "sample-color.png", package="EBImage"))
  display(x, title='Sample')

  ## Low-pass disc-shaped filter
  f = makeBrush(21, shape='disc', step=FALSE)
  display(f, title='Disc filter')
  f = f/sum(f)
  y = filter2(x, f)
  display(y, title='Filtered image')

  ## Low-pass filter with linear padded boundary
  y = filter2(x, f, boundary=c(0,.5,1))
  display(y, title='Filtered image with linear padded boundary')

  ## High-pass Laplacian filter
  la = matrix(1, nc=3, nr=3)
  la[2,2] = -8
  y = filter2(x, la)
  display(y, title='Filtered image')
  
  ## High-pass Laplacian filter with replicated boundary
  y = filter2(x, la, boundary='replicate')
  display(y, title='Filtered image with replicated boundary')

EBImage

Image processing and analysis toolbox for R

v4.32.0
LGPL
Authors
Andrzej Oleś, Gregoire Pau, Mike Smith, Oleg Sklyar, Wolfgang Huber, with contributions from Joseph Barry and Philip A. Marais
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.