一、简介
RGB 是我们接触最多的颜色空间,分别为红色(R),绿色(G)和蓝色(B)。HSV 是用色调H,饱和度S,明亮度V来描述颜色的变化,H取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。饱和度S越高,颜色则深而艳。光谱色的白光成分为0,饱和度达到最高。通常取值范围为0%~100%,值越大,颜色越饱和。H表示颜色明亮的程度,对于光源色,明度值与发光体的光亮度有关;对于物体色,此值和物体的透射比或反射比有关。通常取值范围为0%(黑)到100%(白)。
二、从RGB转换到HSV
- 设 (r, g, b) 分别是一个颜色的红、绿和蓝坐标,它们的值是在 0 到 1 之间的实数
- 设 max 等于 r, g, b 中的最大者
- 设 min 等于 r, g, b 中的最小者
转换代码如下:
float retmax(float a,float b,float c)//求最大值
{
float max = 0;
max = a;
if(max<b)
max = b;
if(max<c)
max = c;
return max;
}
float retmin(float a,float b,float c)//求最小值
{
float mi