如何以编程方式确定给定像素是否为黄色?还是红色?或者其他颜色?
红色在RGB空间中通常是(255,0,0),但我们也知道(230,0,0)也会出现红色。
是否有任何标准将 RGB 空间分成八种主要颜色 - 红、绿、蓝、黄、洋红、青色、黑色和白色?
在 RGB 中确定该值可能很复杂,但您可以将 RGB 值转换为 HSV,这是一种通过色调、饱和度和值表示颜色的格式。这是用于在 Photoshop 等软件中选取特定颜色的系统。
在此系统中,光谱的所有颜色均以范围从 0 到 360 度的单个浮动指针数字(色调)表示,其他 2 个数字仅修改此颜色(判断它是更灰还是更亮)。
这使得比较颜色变得很容易,正如您在该图像上看到的那样,RGB 和 CMYK 系统中的每个原色都正好相距 60 度。
在这里,您可以轻松看出 30 到 90 之间的任何颜色都是黄色色调,330(或 -30)到 30 之间的任何颜色都是红色色调,依此类推。
您甚至可以更具体地确定橙色、紫色和其他非原色的色调范围。
关于黑色和白色,您可以通过检查颜色的值是否较低(例如小于 0.1(范围从 0 到 1))来确定颜色是否显示为黑色,如果找到高值(较大的值)的组合,则确定它是否为白色例如低于 0.9)和低饱和度(例如低于 0.1)。当然,没有确切的数字,因此您必须自己决定何时非常暗或非常亮的颜色变成黑色或白色。