Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
## ----setup--------------------------------------------------------------------
library(imagine)
## ----eval=FALSE---------------------------------------------------------------
# install.packages("imagine")
## ----eval=FALSE---------------------------------------------------------------
# # 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)
## ----message=FALSE, fig.height=6, fig.width=5.33, fig.cap = "Figure 1: 2D vs 2D quantile convolutions", results='hide', fig.pos="h", echo=FALSE----
# Defining a copy of wbImage
myMatrix <- wbImage
# Defining color palette
cols <- gray.colors(n = 1e3, start = 1, end = 0)
# 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 = myMatrix, kernel = kernel1)
convQuantileExample <- convolutionQuantile(X = myMatrix, kernel = kernel2, probs = 0.8)
# Make plots
par(mar = c(0, 0.5, 0, 0.5), oma = c(0, 0, 2, 0), mfrow = c(2, 1))
image(convolutionExample, col = cols, axes = FALSE)
mtext(text = "2D convolution", side = 1, line = -1.5, col = "white", font = 2, adj = 0.99)
image(convQuantileExample, col = cols, axes = FALSE)
mtext(text = "2D quantile convolution", side = 1, line = -1.5, col = "black", font = 2, adj = 0.99)
## ----eval=FALSE---------------------------------------------------------------
# # 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)
## ----message=FALSE, fig.height=5, fig.width=7.5, fig.cap = "Figure 2: Basic filters comparison", results='hide', fig.pos="h", echo=FALSE----
# Defining a copy of wbImage
myMatrix <- wbImage
# Defining color palette
cols <- gray.colors(n = 1e3, start = 0, end = 1)
# 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))))
myMatrix[naIndex] <- NA
# Apply filters
meanfilterExample <- meanFilter(X = myMatrix, radius = 3)
medianfilterExample <- medianFilter(X = myMatrix, radius = 3)
# Make plots
par(mar = rep(0, 4), oma = rep(0.5, 4), mfrow = c(2, 2))
image(wbImage, col = cols, axes = FALSE)
mtext(text = "Original", side = 3, line = -1.5, font = 2, adj = 0.99)
image(myMatrix, col = cols, axes = FALSE)
mtext(text = "Original with noise (NA)", side = 3, line = -1.5, font = 2, adj = 0.99)
# meanfilterExample[meanfilterExample < 0] <- 0
image(meanfilterExample, col = cols, axes = FALSE)
mtext(text = "Mean filter", side = 3, line = -1.5, font = 2, adj = 0.99)
# medianfilterExample[medianfilterExample < 0] <- 0
image(medianfilterExample, col = cols, axes = FALSE)
mtext(text = "2D median filter", side = 3, line = -1.5, font = 2, adj = 0.99)
## ----eval=FALSE---------------------------------------------------------------
# medianFilter(X = wbImage, radius = 5, times = 50)
## ----message=FALSE, fig.height=5, fig.width=7.5, fig.cap = "Figure 3: Filters with several time settings", results='hide', fig.pos="h", echo=FALSE----
times <- c(1, 5, 15)
# Defining color palette
cols <- gray.colors(n = 1e3, start = 0, end = 1)
# Apply filters
median_times1 <- medianFilter(X = wbImage, radius = 5, times = times[1])
median_times2 <- medianFilter(X = wbImage, radius = 5, times = times[2])
median_times3 <- medianFilter(X = wbImage, radius = 5, times = times[3])
# Make plots
par(mar = rep(0, 4), oma = rep(0.5, 4), mfrow = c(2, 2))
image(wbImage, col = cols, axes = FALSE)
mtext(text = "Original", side = 3, line = -1.5, font = 2, adj = 0.99)
image(median_times1, col = cols, axes = FALSE)
mtext(text = paste("2D median filter\ntimes =", times[1]),
side = 3, line = -2.5, font = 2, adj = 0.99)
image(median_times2, col = cols, axes = FALSE)
mtext(text = paste("2D median filter\ntimes =", times[2]),
side = 3, line = -2.5, font = 2, adj = 0.99)
image(median_times3, col = cols, axes = FALSE)
mtext(text = paste("2D median filter\ntimes =", times[3]),
side = 3, line = -2.5, font = 2, adj = 0.99)
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.