如何检查RGB颜色?如何知道此范围是绿色还是红色?

5
string greenImage = @"C:\Users\keti.p\Desktop\greenImage.jpg";
Bitmap bitMap = new Bitmap(greenImage);
int width = maxWidth / 2;
int height = maxHeight / 2;
Color c = bitMap.GetPixel(width, height);

Color color = Color.FromArgb(c.R, c.G, c.B);

我有这个“颜色”对象,

例如,这个颜色是绿色吗?还是红色?或者是什么颜色? 一个穿着绿色制服的护林员。


2
请参考维基百科。RGB对于这种任务来说并不好,因此通常您需要转换为HSV,进行计算,如果您想要更改某些内容,则将其转换回RGB。 - Sinatr
2
这个链接应该会有所帮助。 - TaW
你是想查找颜色是否为红色/绿色等,还是将所有颜色分成不同的“主要颜色”区域?(第一种情况:您将不会对中间颜色进行分类,例如粉色)。请注意:没有确切的解决方案:对于某些人来说,某些颜色可能是“红色”,而对于其他人来说则“绝对不是红色”,因此您还应该指定什么是您的“足够好”。 - Giacomo Catenazzi
1个回答

8
您想要使用 Color 类的 GetHue HSL 方法来检查颜色的色调:
Color a = Color.Red;
Console.WriteLine(a.GetHue()); // 0
Color b = Color.Green;
Console.WriteLine(b.GetHue()); // 120

我认为这些数字应该对应这张图表: strong text 图片来源:此处

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接