谁能给一个RGB到HSI的转换公式? | hsi公式
void_colour_struct::ChangedColourFromRGBStandardtoHSL( ){#ifdef_DEBUG//ASSERT( _colour_administer::GetGlobalColourStructStandard( ) == HSL_COLOUR_STANDARD );#endifshortR_value_in_rgb = this -> m_redColourValue;shortG_value_in_rgb = this -> m_greenColourValue;shortB_value_in_rgb = this -> m_blueColourValue;floatR = ((float)R_value_in_rgb) / 255;floatG = ((float)G_value_in_rgb) / 255;floatB = ((float)B_value_in_rgb) / 255;if( R_value_in_rgb == G_value_in_rgb && G_value_in_rgb ...
void _colour_struct::ChangedColourFromRGBStandardtoHSL( ) { #ifdef _DEBUG //ASSERT( _colour_administer::GetGlobalColourStructStandard( ) == HSL_COLOUR_STANDARD ); #endif short R_value_in_rgb = this -> m_redColourValue; short G_value_in_rgb = this -> m_greenColourValue; short B_value_in_rgb = this -> m_blueColourValue;float R = ((float)R_value_in_rgb) / 255;float G = ((float)G_value_in_rgb) / 255;float B = ((float)B_value_in_rgb) / 255;
if( R_value_in_rgb == G_value_in_rgb && G_value_in_rgb == B_value_in_rgb ){int nHValue = 0;int nSValue = 0;int nLValue = ((float)R_value_in_rgb )/ 255 * 100;
this -> m_redColourValue = nHValue;this -> m_greenColourValue = nSValue;this -> m_blueColourValue = nLValue; return;}float max_value_of_rgb = GetMax( R, G, B );
float min_value_of_rgb = GetMin( R, G, B );
float fSumRGB = R + G + B;if( fSumRGB <= 0.0 )fSumRGB = 0.001;
float I = ( R + G + B ) / 3;float S = 1.0 - 3.0 * min_val...