在R中如何使用一个带有所有"子区域的函数来过滤矩阵"矩阵作为参数?

时间:2017-04-02 08:47:25

标签: r image matrix filter

我正在寻找的是像卷积这样的函数,它具有将邻域中的值作为参数的函数。 为例:

m <- matrix(1:25, nrow = 5)
f <- function(x) {sd(x, na.rm=T)/mean(x, na.rm=T)}    
m

      [,1] [,2] [,3] [,4] [,5]
[1,]    1    6   11   16   21
[2,]    2    7   12   17   22
[3,]    3    8   13   18   23
[4,]    4    9   14   19   24
[5,]    5   10   15   20   25

使用3x3内核时,结果应为:

m.out[1,1] = f(c(NA, NA, NA, NA, NA,  1, 2, 6, 7)) = 0.7359801
m.out[2,1] = f(c(NA, NA, NA,  1, 2, 3, 6, 7, 8)) = 0.640216
m.out[2,2] = f(c(1, 2, 3, 6, 7, 8, 11, 12, 13)) =  0.6308401

m.out[5,5] = f(c(19, 20, 24, 25, NA, NA, NA, NA, NA)) = 0.1338146

等......

实际上这与图像包中的过滤器很接近但是我没有成功地放置自己的功能...... 非常感谢 利昂

0 个答案:

没有答案