rgb2hsi.cpp
来自「这个程序是由rgb转化为hsi的程序」· C++ 代码 · 共 39 行
CPP
39 行
/********************************************************************
* 函数名称:rgb2hsi
* 功能:实现rgb到hsi的转换
* 参数:hsi - 长度为3的双精度数组
* rgb - 长度为3的双精度数组
*******************************************************************/
void rgb2hsi(double *hsi, double *rgb)
{
double& R = rgb[0];
double& G = rgb[1];
double& B = rgb[2];
double& H = hsi[0];
double& S = hsi[1];
double& I = hsi[2];
double min = R;
if (G < min)
min = G;
if (B < min)
min = B;
I = (R+G+B)/3.0;
S = 1 - min/I;
if (S == 0.0)
{
H = 0.0;
}
else
{
H = ((R-G)+(R-B))/2.0;
H = H/sqrt((R-G)*(R-G) + (R-B)*(G-B));
H = acos(H);
if (B > G)
{
H = 2*PI - H;
}
H = H/(2*PI);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?