python中rgb颜色_Python RGB 和HSV颜色相互转换

import math

def hsv2rgb(h, s, v):

h = float(h)

s = float(s)

v = float(v)

h60 = h / 60.0

h60f = math.floor(h60)

hi = int(h60f) % 6

f = h60 - h60f

p = v * (1 - s)

q = v * (1 - f * s)

t = v * (1 - (1 - f) * s)

r, g, b = 0, 0, 0

if hi == 0: r, g, b = v, t, p

elif hi == 1: r, g, b = q, v, p

elif hi == 2: r, g, b = p, v, t

elif hi == 3: r, g, b = p, q, v

elif hi == 4: r, g, b = t, p, v

elif hi == 5: r, g, b = v, p, q

r, g, b = int(r * 255), int(g * 255), int(b * 255)

return r, g, b

def rgb2hsv(r, g, b):

r, g, b = r/255.0, g/255.0, b/255.0

mx = max(r, g, b)

mn = min(r, g, b)

df = mx-mn

if mx == mn:

h = 0

elif mx == r:

h = (60 * ((g-b)/df) + 360) % 360

elif mx == g:

h = (60 * ((b-r)/df) + 120) % 360

elif mx == b:

h = (60 * ((r-g)/df) + 240) % 360

if mx == 0:

s = 0

else:

s = df/mx

v = mx

return h, s, v

R, G, B是 [0, 255]. H 是[0, 360]. S, V 是 [0, 1].

背景知识:

RGB大家都很熟悉,是红,绿,蓝三色的值。

HSV是什么呢? HSV(Hue, Saturation, Value)是根据颜色的直观特性由A. R. Smith在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。 这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。   HSV颜色空间模型 色调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沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值