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

**Filtered**

### 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, times = 10)
```

Now, we will plot both data (original and filtered) using `image`

function, as shows in figures 1 and 2.

**Original**

**Filtered**