• HSV color space


    计算机图形学原理的课给我们指定了课题然后自己去研究并且做ppt(顺便吐槽一下晚课下课布置作业第二天早课就要交的辣鸡时间安排)

    肝了一个晚上 大概知道了一点 先写下来  

    HSV其实是hue saturation value 即为色调 饱和度 明度 的一个颜色模型 是RGB颜色模型的替代表示、

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

    保护度S表示颜色接近光谱色的程度 一种颜色可以看作是某种光谱色与白色混合的结果 其中光谱色占的比例越大 颜色接近光谱色的程度就越高 颜色的饱和度就越高 饱和度高 颜色则深而艳 光谱色的白光成分为0 饱和度达到最高 通常取值范围为0%~100% 值越大颜色越饱和

    明度V表示颜色明亮的程度  对于光源色  明度值与发光体的光亮度有关  对于物体色  此值和物体的透射比或反射比有关  通常取值范围为0%(黑)到100%(白)

    HSV模型通常用倒六棱锥的模型表示  H参数表示色彩信息  即所处的光谱颜色的位置  该参数用一角度量来表示  纯度S为一比例值  范围从0到1  表示所选颜色的纯度和该颜色最大的纯度之间的比率  S=0时  只有灰度 V表示色彩的明亮程度  范围从0到1  它和光强度之间并没有直接的联系

    算法:

    RCB转化到HSV的算法:

    max=max(R,G,B);

    min=min(R,G,B);

    V=max(rR,G,B);

    S=(max-min)/max;

    if(R=max) H=(G-B)/(max-min)*60;

    if(G=max) H=120+(B-R)/*(max-min)*60;

    if(B=max) H=240+(R-G)/(max-min)*60;

    if(H<0) H=H+360;

    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;
  • 相关阅读:
    达梦数据库配置信息
    linux命令收集
    达梦数据库快速学习上手教程
    linux命令收集
    关于deciaml的类型转换问题
    exjs 导出excel
    Win7 系统IIS的配置方法 及相关参数设置
    为MFC添加UAC控制 (UAC Execution Level)
    asp.net 六大内置对象(1)
    .NET Framework 的垃圾回收器管理应用程序的内存分配和释放
  • 原文地址:https://www.cnblogs.com/whdsunny/p/9635116.html
Copyright © 2020-2023  润新知