filter2 {EBImage} | R Documentation

## 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

`makeBrush`, `convolve`, `fft`, `blur`

### 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')

[Package EBImage version 4.20.1 Index]