Skip to contents

Applies a mean filter (low-pass filter) to smooth an image by emphasizing longer-range variability and reducing noise.

Usage

wbw_mean_filter(x, filter_size_x = 11L, filter_size_y = 11L)

Arguments

x

Raster object of class WhiteboxRaster. See wbw_read_raster() for more details.

filter_size_x

integer, X dimension of the neighbourhood size

filter_size_y

integer, Y dimension of the neighbourhood size

Value

WhiteboxRaster object containing filtered values

Details

Uses an efficient integral image approach (Crow, 1984) that is independent of filter size. While commonly used, mean filters can be more aggressive in their smoothing compared to edge-preserving alternatives like the wbw_bilateral_filter or wbw_gaussian_filter.

Neighbourhood size, or filter size, is specified in the x and y dimensions using filter_size_x and filter_size_y These dimensions should be odd, positive integer values (e.g. 3L, 5L, 7L, 9L, etc.).

References

Crow, F. C. (1984, January). Summed-area tables for texture mapping. In ACM SIGGRAPH computer graphics (Vol. 18, No. 3, pp. 207-212). ACM.

For more information, see https://www.whiteboxgeo.com/manual/wbw-user-manual/book/tool_help.html#mean_filter

Examples

f <- system.file("extdata/dem.tif", package = "wbw")
wbw_read_raster(f) |>
  wbw_mean_filter(filter_size_x = 3L, filter_size_y = 3L)
#> +-----------------------------------------------+ 
#> | WhiteboxRaster                                |
#> | dem.tif                                       |
#> |...............................................| 
#> | bands       : 1                               |
#> | dimensions  : 726, 800  (nrow, ncol)          |
#> | resolution  : 5.002392, 5.000243  (x, y)      |
#> | EPSG        : 2193  (Linear_Meter)            |
#> | extent      : 1925449 1929446 5582091 5585717 |
#> | min value   : 64.322784                       |
#> | max value   : 359.583405                      |
#> +-----------------------------------------------+