我正在获取像这样的图像像素数据:
var p = c.getImageData(x, y, 1, 1).data;
var red = p[0];
var green = p[1];
var blue p[2];
对不起,但我的问题不是关于代码,什么范围的rgb被认为是蓝色? (例如红色也可能由蓝色组成,但我们称之为红色,如何确定它?)
答案 0 :(得分:5)
色调范围从180到300的任何颜色都可以被认为是蓝色,因为这是主要颜色。但是,如果你也想考虑二次色,那么你的范围是210到270.那么你必须考虑诸如“它仍然看起来像青色”之类的东西(因为绿色在感知上比蓝色更明亮)和类似的东西,那里有真的没有硬性的定义。
所以你能做的就是说“如果(最多(红色,绿色,蓝色)==蓝色)那么它是蓝色的”并且没有人可以为你做错。