我想让R在图像的一部分中检测给定的颜色。
我一直在阅读关于RGB方案的内容,但我认为可能会有一个包或一种让R检测像素簇的方法,例如黄色发生。
是否有解决方案,或者我只是陷入RGB?
感谢。
答案 0 :(得分:3)
你走了:
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)
所以,这里只有几个可教点。数字图像基本上是用于保持像素值的桶。所以你需要做的就是对光栅进行子集化(读取:数字图像),使用一些工具将其读入R;决定如何将其子集化;并以与R中任何其他数据的子集相同的方式对其进行子集化 另一种考虑R中栅格的方法是堆叠相同大小的矩阵,堆栈中的矩阵数量是图像中的波段数。通过这种方式,您可以操纵数据,就像操纵R中的任何其他矩阵一样。