2D Convolution Filter
Filters an image using the fast 2D FFT convolution product.
filter2(x, filter, boundary = c("circular", "replicate"))
x |
An |
filter |
An |
boundary |
Behaviour at image borders. The default is to wrap the image around borders. For other modes see 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.
An Image
object or an array, containing the filtered version
of x
.
Andrzej Oleś, Gregoire Pau
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')
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.