r - 图像(R)上的归一化差异植被指数(NDVI)指数计算问题
问题描述
在获得一个 NDVI 指数(在以下代码中称为 S)后,我想计算值高于图像限制(以下代码中为 0.02)的像素数。我尝试了很多方法,但它不起作用(我已经检查过我的值是否低于 0.02)。使用的图片: 1:https ://i.stack.imgur.com/8HCuZ.jpg
## load package
library(raster)
library(oceanmap)
#load satellite image of a park
f <- stack(list.files(path='C:/Users/Desktop/Segmentation', full.names=TRUE))
###################################################
###################################################
b <- brick(f)
###################################################
# obtain the R, G and B layer of the initial image raster
R <- b[[1]]
G <- b[[2]]
B <- b[[3]]
###################################################
#color vegetation indices
S <- (G-B)/(R+G+B)
> class(S)
[1] "RasterLayer"
attr(,"package")
[1] "raster"
> SumS0 <- as.numeric(sum(S[] < 0.02))
> SumS0
[1] NA
> S1 <- as.matrix(S)
> SumS1 <- as.numeric(sum(S1[] < 0.02))
> class(S1)
[1] "matrix" "array"
> SumS1
[1] NA
> S2 <- raster2matrix(S)
> SumS2 <- as.numeric(sum(S2[] < 0.02))
> SumS2
[1] NA
> S3 <- as.data.frame(S)
> SumS3 <- as.numeric(sum(S3[] < 0.02))
> SumS3
[1] NA
对于随机矩阵,它可以工作:
M1<-matrix(rnorm(36),nrow=6)
SumM1 <- as.numeric(sum(M1[] < 0.02))
SumM1
[1] 15
解决方案
推荐阅读
- javascript - 占三个单词数组中最长的决胜局
- flutter - Flutter web 元素抛出 elementnotInteractable 异常
- powershell - 是否有可能在 xcopy 命令的排除参数中传递变量
- python - 检查哪个小数更大 django
- php - 通过 CLI 使用 Imagick (PHP) 和 ImageMagick 的标准偏差值不一致
- swiftui - 如何传递绑定属性的初始值?
- php - 如何在 CodeIgniter 中使用 salt 正确实现加密库?
- php - 更改 WordPress Post 永久链接结构并获得 404 错误 nginx
- javascript - tomTomMap.addSource() 中的“归因”键是什么?
- visual-studio-code - 如何从下载的 .tar.gz 文件安装 VSCodium