如何以编程方式确定给定像素是否为黄色?还是红色的?还是另一种颜色?
RGB空间中的红色通常是(255,0,0),但我们也知道(230,0,0)也会显示为红色。
是否有任何标准将RGB空间分成八种主要颜色 - 红色,绿色,蓝色,黄色,品红色,青色,黑色和白色?
答案 0 :(得分:4)
确定RGB中的内容可能很复杂,但您可以将RGB值转换为HSV,这是一种通过色调,饱和度和值来表示颜色的格式。这是用于在Photoshop等软件中选择特定颜色的系统。
在此系统中,光谱的所有颜色都以单个浮动指针编号(Hue)表示,范围从0到360度,其他2个数字仅修改此颜色(告诉它是否更灰或更亮)。
这样可以轻松比较颜色,正如您在此图像上看到的那样,RGB和CMYK系统中的每种原色都相隔60度。
在这里你可以很容易地说出30到90之间的任何东西都是黄色调,330(或-30)到30之间的任何东西都是红色等等。
您甚至可以更具体,并确定橙色,紫色和其他非主色调的色调范围。
关于黑色和白色,您可以通过检查颜色是否为低来确定颜色是否显示为黑色,例如小于0.1(范围从0到1),如果找到高的组合,它是否为白色值(例如大于0.9)和低饱和度(例如低于0.1)。当然没有确切的数字,所以当非常暗或非常明亮的颜色变成黑色或白色时,你必须自己决定。
答案 1 :(得分:0)
在RGB颜色模型中,您有三个通道reg,绿色和蓝色,其值介于0到255之间(您知道!)。
为了覆盖整个频谱,您将三个频道与一定数量的值选项结合起来。
因此,如果每个通道都有x个量值选项,您将得到x * x * x = x ^ 3个颜色值。
有两个选项,例如0和255你得到2 ^ 3 = 8种颜色。
对于构成五个(= 6 - 1)段的六个选项,您有值 0 *(255/5),1 *(255/5),2 *(255/5),3 *(255/5),4 *(255/5),5 *(255/5) 这使得6 ^ 3 = 216种颜色,你可以在这里看到它。
上面的范围向您展示了如何为一个通道构建一维数组。由于三个通道相同,您可以将它用于所有三个通道。
通过这种方式,您可以构建二维数组:
0,0,0
51,0,0
102,0,0