我正在尝试查找图像的主要颜色,以使主要颜色适合十二种预先指定的颜色(红色,橙色,黄色,绿色,蓝绿色,蓝色,紫色,粉红色)之一的某个“区域” ,白色,灰色,黑色,棕色)。也就是说,我要输入图像,例如,如果图像主要是黄绿色,则程序应输出黄色或绿色(取决于它是比黄色更绿色还是比绿色更黄色)。
似乎大多数人使用k均值聚类来找到主要颜色,但是(如果我是正确的话)这k个区域似乎并没有预先指定。那就是指定的数字k,但是如果我输入k = 12,我认为该算法不一定会根据我的颜色列表划分区域。还有其他方法吗?
我尝试了以下方法(在Python中使用PIL):检索图像的直方图,并找到与R,G和B值相对应的最大值(分别称为R1,G1,B1)。然后通过从我的调色板列表中找到R1,G1,B1与R,G,B值之间的最小欧几里得距离,找到“最接近”的颜色。这似乎效果不佳,因为检索到的许多颜色只是灰色和黑色,而相对于其他颜色,图像本身似乎没有太多的灰色或黑色。
该程序正在用Python编码。
是否存在另一种方法来找到给定预先指定的调色板的主色?