c# – 如何将某些颜色分类到颜色范围?
发布时间:2020-12-15 06:39:03 所属栏目:百科 来源:网络整理
导读:如果我得到浅灰色(例如R = G = B = 200)和暗色(例如R = 46,G = 41,B = 35),我想将它们分类为简单的灰色颜色组(想象一下表). 那么,我如何将颜色组织成颜色组呢? 解决方法 对于颜色的视觉分类,通常更容易将颜色转换为 HSL or HSV.要检测灰度,请检查饱和度是否
如果我得到浅灰色(例如R = G = B = 200)和暗色(例如R = 46,G = 41,B = 35),我想将它们分类为简单的灰色颜色组(想象一下表).
那么,我如何将颜色组织成颜色组呢? 解决方法
对于颜色的视觉分类,通常更容易将颜色转换为
HSL or HSV.要检测灰度,请检查饱和度是否低于某个阈值.要检测任何其他颜色,请检查Hue.
public string Classify(Color c) { float hue = c.GetHue(); float sat = c.GetSaturation(); float lgt = c.GetLightness(); if (lgt < 0.2) return "Blacks"; if (lgt > 0.8) return "Whites"; if (sat < 0.25) return "Grays"; if (hue < 30) return "Reds"; if (hue < 90) return "Yellows"; if (hue < 150) return "Greens"; if (hue < 210) return "Cyans"; if (hue < 270) return "Blues"; if (hue < 330) return "Magentas"; return "Reds"; } 你当然可以使用其他一些部门. 我做了一个简单的JavaScript应用程序来测试它:Color classification (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |