干得好:
install.packages('raster')
library(raster)
#Get some data
duck.jpg<-tempfile()
download.file('http://www.pilgrimshospices.org/wp-content/uploads/Pilgrims-Hospice-Duck.jpg',duck.jpg,mode="wb")
#Plug it into a stack object
duck.raster<-stack(duck.jpg)
names(duck.raster)<-c('r','g','b')
#Look at it
plotRGB(duck.raster)
duck.yellow<-duck.raster
duck.yellow$Yellow_spots<-0
duck.yellow$Yellow_spots[duck.yellow$r<250&duck.yellow$g<250&duck.yellow$b>5]<-1
plot(duck.yellow$Yellow_spots)
Run Code Online (Sandbox Code Playgroud)
所以,这里只是一些可教的要点。数字图像基本上是一个用于保存像素值的桶。因此,对栅格进行子集化(读取:数字图像)所需要做的就是使用某种工具将其读入 R;决定如何对其进行子集化;并以与对 R 中的任何其他数据进行子集化相同的方式对其进行子集化。另一种考虑 R 中栅格的方法是一堆相同大小的矩阵,堆栈中的矩阵数与图像中的波段数相同。通过这种方式,您可以像操作 R 中的任何其他矩阵一样操作数据。