0

我得到这样的图像像素数据:

var p = c.getImageData(x, y, 1, 1).data;
var red = p[0];
var green = p[1];
var blue p[2];

对此感到抱歉,但我的问题与代码无关,什么范围的 rgb 被认为是蓝色?(例如红色也可能包含蓝色,但我们称之为红色,如何确定?)

4

1 回答 1

6

色调范围从 180 到 300 的任何颜色都可以被认为是蓝色,因为这是占主导地位的原色。但是,如果你也想考虑二次色,那么你的范围是 210 到 270。然后你必须考虑“它仍然看起来是青色”(因为绿色在感知上比蓝色更亮)之类的东西,有真的没有硬性定义。

所以你能做的就是说“如果(最大(红色,绿色,蓝色)==蓝色)那么它是蓝色的”,没有人可以责怪你。

于 2013-07-16T07:45:51.290 回答