【问题标题】:Detect color in image检测图像中的颜色
【发布时间】:2018-07-16 19:17:01
【问题描述】:

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

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

有解决办法还是我只是陷入了 RGB?

谢谢。

【问题讨论】:

  • 您的图像是如何存储的?它可能是 rbg 值的二进制文件还是 csv?
  • 您永远不会被 RGB 所困。在这里要求包或库被认为是题外话。我建议你在网上搜索“R 中的颜色分割”
  • @cptwonton,我不知道。有没有办法检查?请原谅缺乏知识。
  • 那么,对@cptwonton 的跟进,你说的颜色是什么意思?在 RGB 颜色空间中,如果您正在处理 8 位 3 波段栅格,其中每个波段的值可以占据 0-255 的范围。这里的“黄色”是您定义的,但会以 ~(255,255,0) 的顺序来描述。您是否对捕获一系列像素或特定像素值感兴趣?
  • @MigueldeDeus 检查此链接ciphervision.com/Color-based-object-detection

标签: r image image-processing colors


【解决方案1】:

给你:

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

【讨论】:

    猜你喜欢
    • 2016-08-29
    • 1970-01-01
    • 2013-08-19
    • 2020-02-07
    • 1970-01-01
    • 2019-05-12
    • 2021-08-17
    • 2011-12-05
    • 2013-04-12
    相关资源
    最近更新 更多