博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python RGB 和HSV颜色相互转换
阅读量:5894 次
发布时间:2019-06-19

本文共 1543 字,大约阅读时间需要 5 分钟。

转自:http://outofmemory.cn/code-snippet/1002/Python-RGB-HSV-color-together-switch

 

Python RGB 和HSV颜色相互转换

import mathdef 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, bdef 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沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。

 

转载地址:http://chnsx.baihongyu.com/

你可能感兴趣的文章
JavaScript---事件
查看>>
Android NDK入门实例 计算斐波那契数列一生成jni头文件
查看>>
c/c++性能优化--I/O优化(上)
查看>>
将HTML特殊转义为实体字符的两种实现方式
查看>>
jquery 保留两个小数的方法
查看>>
网站架构设计的误区
查看>>
iis 故障导致网站无法访问
查看>>
C++ 基础笔记(一)
查看>>
System.Func<>与System.Action<>
查看>>
asp.net开源CMS推荐
查看>>
csharp skype send message in winform
查看>>
MMORPG 游戏服务器端设计--转载
查看>>
《星辰傀儡线》人物续:“灭世者”、“疯狂者”、“叛逆者”三兄妹
查看>>
安装系统字体
查看>>
SILK 的 Tilt的意思
查看>>
Html学习笔记3
查看>>
批处理学习笔记8 - 深入学习For命令1
查看>>
微信支付开发(11) Native支付
查看>>
HDFS dfsclient写文件过程 源码分析
查看>>
关于多线程的那些事
查看>>