【问题标题】:How to extract color features of an image in R如何在R中提取图像的颜色特征
【发布时间】:2015-12-10 00:19:03
【问题描述】:

我想在 R 中进行一些图像特征提取。目前我正在使用 EBImage 包。我可以得到一个带有 hist-function 的 RGB-histogramm,但我也可以得到一个 Lab-Histogramm 吗?此外,我还想存储直方图的数据(像素强度的分布)。这怎么可能?是否可以在 R 中提取图像的颜色相关图?如果是,我该怎么做? 非常感谢! 这是我到目前为止所做的代码(使用 cmets):

source("http://bioconductor.org/biocLite.R") 
biocLite() 
biocLite("EBImage") 
library(EBImage) 
image1 <- readImage('C:/Users/Inalei/Pictures/Image1.JPG')
image2 <- readImage('C:/Users/Inalei/Pictures/Image2.JPG') 
image3 <- readImage('C:/Users/Inalei/Pictures/Image3.JPG')

hist1 <- hist(image1) #hist1 is empty
hist2 <- hist(image2) #hist2 is empty
hist3 <- hist(image3) #hist3 is empty

library(corrgram)
corrgram(image1) #Error in slot(x, ".Data")[, sapply(x, is.numeric), drop = FALSE] : incorrect number of dimensions

【问题讨论】:

  • 请添加一些可重现的代码,显示您到目前为止所做的工作,这将有助于人们回答您的问题。

标签: r colors


【解决方案1】:

我刚刚更新了EBImage开发版,方便提取图像直方图数据。现在hist 方法不可见地返回对应于红色、绿色和蓝色通道的“直方图”类对象的命名列表。例如,要访问绿色像素强度的分布,您可以使用

hist1 <- hist(image1)
hist1$green

要使用此功能,请从源安装 EBImage

library(devtools)
install_github("Bioconductor-mirror/EBImage")

或等到 EBImage 版本 4.13.5 的二进制文件可从包登录页面https://www.bioconductor.org/packages/3.3/bioc/html/EBImage.html 获得。

关于 Lab 颜色空间的问题:很遗憾,目前我们不支持它。

要制作跨颜色通道的相关图,首先构建一个数据框,其中包含每个通道的像素值列

channels = sapply(c("red", "green", "blue"),
  function(ch) as.vector(channel(x, ch)),
  simplify = FALSE)
channels = as.data.frame(channels)

然后传递给corrgram函数

corrgram(channels)

【讨论】:

猜你喜欢
  • 2012-08-15
  • 2019-12-14
  • 2019-02-08
  • 1970-01-01
  • 2019-03-24
  • 1970-01-01
  • 2019-03-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多