如何找到一个预先指定的颜色调色板图像的主色?

2024-03-28 18:32:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找到一个图像的主色,使主色适合于某个“地区”的12个预先指定的颜色之一(红,橙,黄,绿,青色,蓝,紫,粉红,白,灰,黑,棕色)。也就是说,我想输入一个图像,例如,如果图像主要是黄绿色,那么程序应该输出黄色或绿色(取决于它是绿多于黄还是黄多于绿)。你知道吗

似乎大多数人使用k均值聚类来寻找主色,但是(如果我是正确的话)这些k区域似乎并不是预先指定的。这就是指定的数字k,但是如果我输入k=12,我认为算法不一定会根据我的颜色列表来划分区域。还有其他方法吗?你知道吗

我尝试了以下方法(在Python中使用PIL):检索图像的直方图并找到对应于R、G和B值的最大值(分别称它们为R1、G1、B1)。然后从调色板列表中找出R1、G1、B1和R、G、B值之间的最小欧氏距离,找到“最接近”的颜色。这似乎效果不太好,因为检索到的许多颜色都是灰色和黑色,而相对于其他颜色,图像本身似乎没有太多的灰色或黑色。你知道吗

这个程序是用Python编写的。你知道吗

有没有另一种方法来找到一个预先指定的调色板的主导色?你知道吗


Tags: 方法图像程序区域列表颜色地区b1