我得到这样的图像像素数据:
var p = c.getImageData(x, y, 1, 1).data;
var red = p[0];
var green = p[1];
var blue p[2];
对此感到抱歉,但是我的问题不是关于代码的,rgb的哪个范围被认为是蓝色? (例如,红色也可能由蓝色组成,但是我们将其称为红色,如何确定它?)
最佳答案
介于180到300之间的任何颜色都可以视为蓝色,因为这是主要颜色。但是,如果您也要考虑二次色,则范围是210到270。然后您必须考虑“它看起来仍然是青色”(因为绿色在感知上比蓝色要明亮得多)之类的东西,确实没有一成不变的定义。
因此,您可以做的就是说“如果(如果(最大(红色,绿色,蓝色)==蓝色),那么它就是蓝色”),没有人会为您辩解。
关于javascript - 哪个RGB范围被视为“蓝色”?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17670563/