我想将图像像素颜色分类为一种基本颜色 例如 {暗灰色,浅灰色,银色}那里的基色是====> "格雷" {中蓝色,午夜蓝,深蓝色} ===>"蓝色" 等等
答案 0 :(得分:0)
假设您要使用C#
s Color结构,您可以使用Dictionary类执行以下操作:
Dictionary<Color, List<Color>> colorDict = new Dictionary<Color, List<Color>>();
colorDict.Add(Colors.Gray, new List<Color>() { Colors.DimGrey, Colors.Silver });
colorDict.Add(Colors.Blue, new List<Color>() { Colors.LightBlue, Colors.MidnightBlue });
然后你会有一种方法来找到传入的每种颜色的Key
颜色,如下所示:
private Color FindKeyColour(Dictionary<Color, List<Color>> dict, Color c)
{
if (!dict.ContainsKey(c))
{
//The colour is not a key
return dict.FirstOrDefault(d => d.Value.Contains(c)).Key;
}
else
{
//The colour passed in is a key
return c;
}
}
注意:如果颜色c
不是键或包含在值中,则需要修改此函数。