【发布时间】:2015-11-20 16:16:06
【问题描述】:
我想将图像像素颜色分类为一种基本颜色 例如 { Dim-gray, light-gray , silver }有基色====>“灰色” {中蓝、午夜蓝、海军蓝} ===>“蓝色” 等等
【问题讨论】:
-
你可能想看看msdn.microsoft.com/en-us/library/xfhwa508(v=vs.110).aspx看看做这个方法,如果有任何问题回来
我想将图像像素颜色分类为一种基本颜色 例如 { Dim-gray, light-gray , silver }有基色====>“灰色” {中蓝、午夜蓝、海军蓝} ===>“蓝色” 等等
【问题讨论】:
假设您想使用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不是键或包含在值中,则需要修改此函数。
【讨论】: