数学形态学
包 mmand
提供了计算 n 维数组的数学形态的函数。通过一些解决方法,也可以为光栅图像计算这些。
library(raster)
library(mmand)
r <- raster("C:/Program Files/R/R-3.2.3/doc/html/logo.jpg")
plot(r)
首先,必须使用大小(例如 9x9)和形状类型(例如 disc
,box
或 diamond
)设置内核(移动窗口)
sk <- shapeKernel(c(9,9), type="disc")
之后,必须将栅格图层转换为一个数组,该数组用作 erode()
函数的输入。
rArr <- as.array(r, transpose = TRUE)
rErode <- erode(rArr, sk)
rErode <- setValues(r, as.vector(aperm(rErode)))
除了 erode()
之外,dilate()
,opening()
和 closing()
的形态函数也可以这样应用。
plot(rErode)