HSV颜色模型及颜色分量范围

转载于:https://www.cnblogs.com/wangyblzu/p/5710715.html (如侵权请联系删除)

HSV颜色模型

HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。、这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。

 

色调H:用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,品红为300°;

饱和度S:取值范围为0.0~1.0;

亮度V:取值范围为0.0(黑色)~1.0(白色)。

 

RGB和CMY颜色模型都是面向硬件的,而HSV(Hue Saturation Value)颜色模型是面向用户的。

HSV模型的三维表示从RGB立方体演化而来。设想从RGB沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。

 

HSV颜色分量范围

一般对颜色空间的图像进行有效处理都是在HSV空间进行的,然后对于基本色中对应的HSV分量需要给定一个严格的范围,下面是通过实验计算的模糊范围(准确的范围在网上都没有给出)。

H:  0— 180

S:  0— 255

V:  0— 255

此处把部分红色归为紫色范围:

 

HSV六棱锥

H参数表示色彩信息,即所处的光谱颜色的位置。该参数用一角度量来表示,红、绿、蓝分别纯度S为一比例值,范围从0到1,它表示成所选颜色的纯度和该颜色最大的纯度之间的比率。S=0时,只有灰度。相隔120度。互补色分别相差180度。

V表示色彩的明亮程度,范围从0到1。有一点要注意:它和光强度之间并没有直接的联系。

 

1、RGB转化到HSV的算法:

max=max(R,G,B)

min=min(R,G,B)

V=max(R,G,B)

S=(max-min)/max

ifR = max,H =(G-B)/(max-min)* 60

ifG = max,H = 120+(B-R)/(max-min)* 60

ifB = max,H = 240 +(R-G)/(max-min)* 60

ifH < 0,H = H+ 360

 

2、HSV转化到RGB的算法:

if s = 0

R=G=B=V

else

H /= 60;

i = INTEGER(H)

f = H - i

a = V * ( 1 - s )

b = V * ( 1 - s * f )

c = V * ( 1 - s * (1 - f ) )

switch(i)

case 0: R = V; G = c; B = a;

case 1: R = b; G = v; B = a;

case 2: R = a; G = v; B = c;

case 3: R = a; G = b; B = v;

case 4: R = c; G = a; B = v;

case 5: R = v; G = a; B = b;

 

  HSV对用户来说是一种直观的颜色模型。我们可以从一种纯色彩开始,即指定色彩角H,并让V=S=1,然后我们可以通过向其中加入黑色和白色来得到我们需要的颜色。增加黑色可以减小V而S不变,同样增加白色可以减小S而V不变。例如,要得到深蓝色,V=0.4 S=1 H=240度。要得到淡蓝色,V=1 S=0.4 H=240度。

  一般说来,人眼最大能区分128种不同的色彩,130种色饱和度,23种明暗度。如果我们用16Bit表示HSV的话,可以用7位存放H,4位存放S,5位存放V,即745或者655就可以满足我们的需要了。

  由于HSV是一种比较直观的颜色模型,所以在许多图像编辑工具中应用比较广泛,如Photoshop(在Photoshop中叫HSB)等等,但这也决定了它不适合使用在光照模型中,许多光线混合运算、光强运算等都无法直接使用HSV来实现。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HSV颜色模型是一种描述颜色模型,由色相(Hue)、饱和度(Saturation)和明度(Value)三个分量组成。 在HSV颜色模型,色相(Hue)颜色的种类。色相的取值范围是0到360度,对应了色彩光谱的不同颜色。例如,红色的色相是0度(或360度),绿色的色相是120度,蓝色的色相是240度等等。可以将色相看作是颜色在色彩光谱上的位置。 饱和度(Saturation)颜色的纯度或者说浓度。饱和度的取值范围是0到100%。当饱和度为0时,色彩是灰色的,而当饱和度为100%时,颜色是鲜艳饱和的。饱和度为50%的颜色则是介于灰色和鲜艳色之间。 明度(Value)颜色的亮度。明度的取值范围也是0到100%。当明度为0时,颜色完全黑暗,没有亮度。而当明度为100%时,颜色是最亮且最鲜明的。明度可以看作是颜色的亮度或者明暗程度。 根据HSV颜色模型,各种颜色范围分布如下: - 色相:0度(或360度)对应红色,30度对应橙色,60度对应黄色,120度对应绿色,240度对应蓝色,300度对应紫色等等。 - 饱和度:0%对应灰色,100%对应饱和的颜色。 - 明度:0%对应黑色,100%对应亮丽的颜色。 通过调整HSV模型的各个分量的取值,可以获得各种不同的颜色。例如,调整色相可以改变颜色的种类,调整饱和度可以改变颜色的纯度,调整明度可以改变颜色的亮度。HSV颜色模型因此在图形处理、计算机图形学以及颜色选择等领域具有广泛的应用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值