[IMAG]ing eng[INE]s, Tools for Application of Image Filters to Data Matrices
Provides fast application of image filters to data matrices by using C++ algorithms called 'engines'. More details are shown in vignette.
Get the development version from github:
# install.packages("devtools")
# devtools::install_github("LuisLauM/imagine")
install.packages("imagine", repos = c('https://luislaum.r-universe.dev', 'https://cloud.r-project.org'))
Or install the CRAN version
install.packages("imagine")
For all functions, the main input data must be a numeric matrix object. Depending on each funtion, user must indicate some extra arguments for the filter.
Next, we show the utility of quantileFilter, one of the six functions that imagine performs.
# Load imagine
library(imagine)
# Build an example matrix
n <- 1e3
origMatrix <- matrix(seq(n^2), nrow = n)
# Add some NAs
origMatrix_withNA <- origMatrix
origMatrix_withNA[sample(seq(n^2), 0.7*n^2, replace = FALSE)] <- NA
# Apply filter
newMatrix <- quantileFilter(X = origMatrix_withNA, radius = 3, x = 0.1, times = 1)
# Plot matrices for compare
cols <- colorRampPalette(c("green3", "red4"))(n)
par(mar = c(0, 2, 0, 0), mfrow = c(3, 1))
image(origMatrix, col = cols, axes = FALSE)
mtext(text = "Original", side = 2, line = 0.5, font = 2)
image(origMatrix_withNA, col = cols, axes = FALSE)
mtext(text = "Original with NAs", side = 2, line = 0.5, font = 2)
image(newMatrix, col = cols, axes = FALSE)
mtext(text = "Filtered", side = 2, line = 0.5, font = 2)
is_extreme C++ function.contextualMF documentation.na_only argument in several functions allowing to apply the filters only in the cells where there is NA and replacing with the original value in the rest.agenbagFilters) that performs two methods for gradient calculation.convolutionQuantile, convolutionMedian, quantileFilter and contextualMF.times argument in contextualMF is not longer available.na argument is removed from previous functions: only NA will be considered as a NA.