【问题标题】:How to quantify the number of pixels surrounded by an specific pixel value in r?如何量化 r 中特定像素值包围的像素数?
【发布时间】:2020-11-24 21:45:15
【问题描述】:

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

here is an example file

【问题讨论】:

    标签: r classification raster


    【解决方案1】:

    这是一个相当复杂的问题。下面是一个可能的方法的开始。真正的解决办法是不要把树叶放在离屏幕边缘这么近的地方,只拍屏幕区域的照片。

    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)))
    

    【讨论】:

    • 嗨@Robert Hijmans。你的反应非常好。对于下一次采样,我们将采纳您的建议。非常感谢。
    猜你喜欢
    • 2016-02-23
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 2021-09-06
    • 2019-03-22
    相关资源
    最近更新 更多