我想在R中找到RGB值。
我正在使用的jpeg图像有一个白色背景的对象。 像这样:http://www.wild-wonders.com/blog/wp-content/uploads/2009/11/nba_france_16.jpg
现在,为了只选择对象,我必须手动跟踪每个对象(通过绘制点,使选择成为稍后用于获取RGB值的形状)。在photoshop中有没有像魔术棒工具那样的工具或软件包会自动选择白色背景?
答案 0 :(得分:0)
查看Bioconductor软件包 EBImage 提供的功能, R 的图像处理和分析工具箱。要安装软件包,请使用:
source("http://bioconductor.org/biocLite.R")
biocLite("EBImage")
下面的示例说明了如何从白色背景中自动提取对象,并获取其#rrggbb像素值。由于jpeg压缩引入的工件,我使用0.95的值进行阈值处理而不是1.0(对应于白色像素)。
library(EBImage)
## load the array representing pixel intensities into R
img <- readImage("http://www.wild-wonders.com/blog/wp-content/uploads/2009/11/nba_france_16.jpg")
## convert to grayscale before thresholding
gray <- channel(img, "gray")
## create a mask separating objects from background
mask <- gray < 0.95
## label objects (connected sets of pixels)
obj <- bwlabel(mask)
## indices of pixels within the object
idx <- which(mask==1, arr.ind=TRUE)
## extract the red, green, and blue pixel intensities
rgb <- cbind(channel(img, "r")[idx],
channel(img, "g")[idx],
channel(img, "b")[idx])
## convert to #RRGGBB representation
rgb(rgb)