Как количественно определить количество пикселей, окруженных заданным значением c пикселей в r? - PullRequest
0 голосов
/ 04 августа 2020

мы пытаемся оценить индекс площади листьев растения, но наши изображения (растры) имеют пиксели за пределами области экрана. Нам нужно знать, как количественно определить количество пикселей листьев, включенных только в область экрана, без шума границ (вне экрана). Для этого мы присвоили значение 8 области экрана, окружающей листья. Мы используем для этого растровый пакет. Заранее благодарим за помощь

вот пример файла

1 Ответ

1 голос
/ 05 августа 2020

Это довольно сложная проблема. Ниже приводится начало возможного подхода. Реальное решение - не ставить листья так близко к краю экрана, а делать снимок только области экрана.

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)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...