Main functions
There are 5 main functions and 2 wrappers:
Convolution functions
# Build kernels
# Kernel 1: For bottom edge recognition
kernel1 <- matrix(c(-1, -2, -1,
                     0,  0,  0,
                     1,  2,  1), 
                  nrow = 3)
# Kernel 2: Diagonal weighting
kernel2 <- matrix(c(-2, 0, 0,
                     0, 1, 0,
                     0, 0, 2), 
                  nrow = 3)
# Apply filters
convolutionExample  <- convolution2D(X = wbImage, kernel = kernel1)
convQuantileExample <- convolutionQuantile(X = wbImage, kernel = kernel2, probs = 0.1)In order to compare results, we will plot both data (original and
filtered) using image function, as shows in figures 1 and
2.
Original vs filtered outputs
Figure 1: 2D vs 2D quantile convolutions
Median-filter asociated functions
# Add some noise (NA) to the image (matrix)
set.seed(7)
naIndex <- sample(x       = seq(prod(dim(myMatrix))), 
                  size    = as.integer(0.4*prod(dim(myMatrix))), 
                  replace = FALSE)
myMatrix[naIndex] <- NA
# Build kernel
radius <- 3
# Apply filters
meanfilterExample     <- meanFilter(X = myMatrix, radius = radius)
quantilefilterExample <- quantileFilter(X = myMatrix, radius = radius, probs = 0.1)
medianfilterExample   <- medianFilter(X = myMatrix, radius = radius)Now, we will plot both data (original and filtered) using
image function, as shows in figures 1 and 2.
Original and Filtered
Figure 2: Basic filters comparison