RGB转HSB及HSB颜色模型说明

最近因为要做一个手机app,其中需要对色彩最一些识别。由于我们肉眼所看到的颜色用RGB无法区分(例如我们说的红色可能其RGB模型可能红色、绿色、蓝色都有),所以我们需要一个更容易描述的颜色模型。而hsb模型正好符合我们的要求。

HSB颜色模型可以理解为一个倒立的圆锥形,如下图所示

1353401545_7912    1353404459_6995

每一个颜色都由三个属性组成:

H: 色相

S:饱和度

B:明度

这个模型的好处在于,当我们描述一个红色的不同明暗时,它的色相值是不变的。

比方说我们有个红色,当光照条件不好的时候他表现为暗红,光照特别强时表现为浅红。但是他的色相是不会变化的,只有饱和度和明度发生变化。

所以,当我们对手机在不同光照条件下拍照时,用来判断颜色它的色相的变化是很小的。

RGB转HSB的公式

MAX=(R,G,B)中最大的值

MIN=(R,G,B)中最小的值

1.色相H的计算

如果R值是最大值 色相 H = 60 × ((G – B) ÷ (MAX – MIN))

如果G值是最大值 色相 H = 60 × ((B – R) ÷ (MAX – MIN)) +120

如果B值是最大值 色相 H = 60 × ((R – G) ÷ (MAX – MIN)) +240

如果RGB相等 色相 H = 0

注意:如果H为负值,则将其加上360

2.饱和度S的计算

S = (MAX – MIN) ÷ MAX

如果S的范围为0-255  S=S * 255

如果S的范围为0-100  S=S * 100

3.明度B的计算

明度 V = MAX

如果V的范围为0-255 V=V

如果V的范围为0-100 V=V/255 * 100

 

参考文章:

1.http://www.peko-step.com/tool/hsvrgb.html#ppick2

2.http://blog.csdn.net/viewcode/article/details/8203728

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注