Python RGB 和HSV颜色相互转换,pythonhsv,Python RGB 和
Python RGB 和HSV颜色相互转换,pythonhsv,Python RGB 和
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沿立方体对角线的白色顶点向黑色顶点观察,就可以看到立方体的六边形外形。六边形边界表示色彩,水平轴表示纯度,明度沿垂直轴测量。
相关内容
- python对MySqldb模块的简单封装代码,pythonmysqldb封装,#!/
- python使用pymongo连接MongoDB,pymongomongodb,本文是一个Pyth
- django-redis-cache:用Redis作django的缓存层,redisdjango,djan
- python实现的守护进程(Daemon),pythondaemon,def createDa
- python多线程Ping网段,python多线程ping,import sysim
- python一行代码打印九九乘法表,python一行乘法,python一行
- webpy获得checkbox数组的值,webpycheckbox数组,webpy中获得选
- 使用python查询google pr值代码,pythonpr,如下代码查询网站
- python创建临时文件夹,python创建文件夹,import tempf
- python获得文件扩展名,python文件扩展名,import os.pa
评论关闭