RGB、HSV色彩空间模式的互相转换
来源:互联网 发布:关于qq空间的网络用语 编辑:程序博客网 时间:2024/04/29 20:10
RGB颜色空间转换为HSV空间颜色值:
void Rgb2Hsv(float R, float G, float B, float& H, float& S, float&V)
{
// r,g,b values are from 0 to 1
// h = [0,360], s = [0,1], v = [0,1]
// if s == 0, then h = -1 (undefined)
float min, max, delta,tmp;
tmp = min(R, G);
min = min( tmp, B );
tmp = max( R, G);
max = max(tmp, B );
V = max; // v
delta = max - min;
if( max != 0 )
S = delta / max; // s
else
{
// r = g = b = 0 // s = 0, v is undefined
S = 0;
H = UNDEFINEDCOLOR;
return;
}
if( R == max )
H = ( G - B ) / delta; // between yellow & magenta
else if( G == max )
H = 2 + ( B - R ) / delta; // between cyan & yellow
else
H = 4 + ( R - G ) / delta; // between magenta & cyan
H *= 60; // degrees
if( H < 0 )
H += 360;
}
HSV颜色空间转换为RGB空间颜色值:
void Hsv2Rgb(float H, float S, float V, float &R, float &G, float &B)
{
int i;
float f, p, q, t;
if( S == 0 )
{
// achromatic (grey)
R = G = B = V;
return;
}
H /= 60; // sector 0 to 5
i = floor( H );
f = H - i; // factorial part of h
p = V * ( 1 - S );
q = V * ( 1 - S * f );
t = V * ( 1 - S * ( 1 - f ) );
switch( i )
{
case 0:
R = V;
G = t;
B = p;
break;
case 1:
R = q;
G = V;
B = p;
break;
case 2:
R = p;
G = V;
B = t;
break;
case 3:
R = p;
G = q;
B = V;
break;
case 4:
R = t;
G = p;
B = V;
break;
default: // case 5:
R = V;
G = p;
B = q;
break;
}
}
- RGB、HSV色彩空间模式的互相转换
- RGB、HSV色彩空间模式的互相转换
- RGB、HSV色彩空间模式的互相转换
- RGB到HSV色彩空间转换表
- Atitit rgb yuv hsv HSL 模式和 HSV(HSB) 图像色彩空间的区别
- rgb和hsv的互相转换
- PHP实现RGB,HSL,HSV色彩空间转换
- 将HSV空间和RGB空间互相转换知识
- 基于OpenCV的RGB和HSV色彩空间相互转换C++程序
- 基于OpenCV的RGB和HSV色彩空间相互转换C++程序
- HSL和HSV色彩空间和rgb的互转
- HSV与RGB互相转换
- RGB到HSV颜色空间的转换
- RGB和HSV空间的转换
- RGB到HSV颜色空间的转换
- HSV与RGB颜色空间的转换
- OpenCV 自学笔记21. RGB色彩空间和HSV色彩空间的理解
- 色彩转换——RGB & HSV
- Multiple Language Syntax Highlighting, Part 1: JScript
- jdk1.4 构建 java多线程,并发设计框架 使用列子(一)
- HSI、HSV、RGB、CMYK、HSL、HSB、Ycc、XYZ、Lab、YUV颜色模型的区别
- Java调用dos命令
- SQL Server sysobjects 表结构
- RGB、HSV色彩空间模式的互相转换
- log4net - a .Net logging tool
- C#中的类型转换
- android 调用Webkit工具
- jdk1.4 构建 java多线程,并发设计框架 使用列子(三)
- 告诉大家一个自救救人的古代偏方
- [批处理应用]新入域的计算机枚举,显示加域人员
- jdk1.4 构建 java多线程,并发设计框架 使用列子(二)
- java时间操作函数汇总