检测图像中的颜色

Mig*_*uel 3 r image colors image-processing

我想让 R 在图像的一部分中检测给定的颜色。

我一直在阅读有关 RGB 方案的信息,但我认为可能会有一个包或一种方法让 R 检测一组像素,例如,黄色发生的地方。

有没有解决方案,或者我只是被困在 RGB 中?

谢谢。

Sel*_*lim 5

干得好:

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 中的任何其他矩阵一样操作数据。