如何量化r中特定像素值包围的像素数?

How to quantify the number of pixels surrounded by an specific pixel value in r?

我们正在尝试估算植物的叶面积指数,但我们的图片(光栅)的像素超出了屏幕区域。我们需要知道如何量化仅包含在屏幕区域而没有边界(屏幕外)噪声的叶子的像素数。为此,我们将值 8 分配给叶子周围的屏幕区域。我们正在为此使用栅格包。提前感谢您的帮助

here is an example file

这是一个比较复杂的问题。下面是一个可能的方法的开始。真正的解决办法是不要把树叶放得离屏幕边缘太近,只拍屏幕区域。

library(raster)
p <- raster("prueba.tif")
p <- reclassify(p, cbind(8, NA))
m <- as.matrix(p)
nc <- ncol(m)
c1 <- 1:200
c2 <- (nc-200):nc
nr <- nrow(m)
r1 <- 1:200
r2 <- (nr-200):nr

for (r in 1:nr) {
    i <- which(is.na(m[r,c1]))[1]
    if (!is.na(i)) m[r,1:i] <- NA
    i <- nc - which(is.na(rev(m[r,c2])))[1]
    if (!is.na(i)) m[r,i:nc] <- NA
}
for (c in 1:nc) {
    i <- which(is.na(m[r1,c]))[1]
    if (!is.na(i)) m[1:i, c] <- NA
    i <- nr - which(is.na(rev(m[r2,c])))[1]
    if (!is.na(i)) m[i:nr, c] <- NA
}

x <- setValues(p, as.vector(t(m)))