R 提取图像中的主色

R 提取图像中的主色,r,colors,extract,palette,R,Colors,Extract,Palette,我在R里找不到这样做的方法,所以我想我会问 我试图从一组图像(在本例中为足球运动衫)中提取主色调,但运气不佳 目前取得最大成功的方法是使用rPlotter,例如 library(RImagePalette) library(png) download.file("http://i.imgur.com/UqW6ZLo.png", "kit.png", mode = "wb") test <- readPNG("kit.png") pal <- image_palette(test, 1

我在R里找不到这样做的方法,所以我想我会问

我试图从一组图像(在本例中为足球运动衫)中提取主色调,但运气不佳

目前取得最大成功的方法是使用rPlotter,例如

library(RImagePalette)
library(png)
download.file("http://i.imgur.com/UqW6ZLo.png", "kit.png", mode = "wb")
test <- readPNG("kit.png")
pal <- image_palette(test, 10, median, TRUE)
display_palette(pal)
库(RImagePalette)
图书馆(png)
下载文件(“http://i.imgur.com/UqW6ZLo.png“,”kit.png“,mode=“wb”)

测试R颜色为#rrggbbaa。您需要制表并找到最常见的值。从阅读颜色开始。然后按照所有links.ach进行操作-抱歉,现在用正确的软件包进行更新。我对提取颜色也有同样的问题。图像上明显有更多的“红色”颜色,但我不知道如何让红色簇作为第一元素,首先,定义主色调。如果它是最常见的RGB组合,那么它实际上不是一个R包问题,而是一个简单的数学问题。将RGB值转换为单个值,例如256^3个值中的一个,然后制作直方图以查找最常见的值。但我必须警告,颜色是非常具有欺骗性的,因为不同的RGB组合可以被视为相同的。是的,我的意思是我根本不反对这一点。我的观点是,生成调色板的k-means方法确实有效。更多的时候,它会发现我所认为的“主要颜色”(或者足够接近)。这是一个问题,然后从我发布的第二个区块中找到的第一种颜色列表中提取,我发布的
rPlotter
extract\u colors
使用kmeans,它根据rgb内容对输出进行排序(检查代码以查看这一点),而不是根据输出中最主要的颜色。当您使用
RImagePalette
时,您没有使用kmeans。您使用的是中值切割算法。现在,对于第二个代码块,您是否尝试过提取模态(或中值或均值)值?效果不好吗?R颜色是#rrggbbaa。您需要制表并找到最常见的值。从阅读颜色开始。然后按照所有links.ach进行操作-抱歉,现在用正确的软件包进行更新。我对提取颜色也有同样的问题。图像上明显有更多的“红色”颜色,但我不知道如何让红色簇作为第一元素,首先,定义主色调。如果它是最常见的RGB组合,那么它实际上不是一个R包问题,而是一个简单的数学问题。将RGB值转换为单个值,例如256^3个值中的一个,然后制作直方图以查找最常见的值。但我必须警告,颜色是非常具有欺骗性的,因为不同的RGB组合可以被视为相同的。是的,我的意思是我根本不反对这一点。我的观点是,生成调色板的k-means方法确实有效。更多的时候,它会发现我所认为的“主要颜色”(或者足够接近)。这是一个问题,然后从我发布的第二个区块中找到的第一种颜色列表中提取,我发布的
rPlotter
extract\u colors
使用kmeans,它根据rgb内容对输出进行排序(检查代码以查看这一点),而不是根据输出中最主要的颜色。当您使用
RImagePalette
时,您没有使用kmeans。您使用的是中值切割算法。现在,对于第二个代码块,您是否尝试过提取模态(或中值或均值)值?它不好用吗?
download.file("http://i.imgur.com/UqW6ZLo.png", "kit.png", mode = "wb")
test <- readPNG("kit.png")
list <- c()
for (x in 1:30){
pal <- image_palette(test, 10, median, TRUE)
list <- append(list, pal[1])
}
display_palette(list)