matalb 不同颜色空间转换

%不同颜色空间转换

%{

RGB  XYZ  Yxy Luv

HSV(又称HSB):(hue,saturation,value)

HSI:色调(Hue)、色饱和度(Saturation)和亮度 (Intensity)

HSL:

Lab

CMY

CMYK

%}

%RGB->HSL

RGB=[93 78 85];%0-255

R=RGB(1);G=RGB(2);B=RGB(3);

var_R = ( R / 255 );% 把RGB值转换成[0,1]中数值

var_G = ( G / 255 );

var_B = ( B / 255 );

var_Min = min(var_R,min(var_G,var_B));    %Min. value of RGB

var_Max = max(var_R,min(var_G,var_B));    %Max. value of RGB

del_Max = var_Max - var_Min ;          %Delta RGB value

L = ( var_Max + var_Min )/ 2;

if ( del_Max == 0 )                    %This is a gray, no chroma...

    H = 0;

else                                %Chromatic data...

  del_R = ( ( ( var_Max - var_R ) / 6 ) + ( del_Max / 2 ) ) / del_Max;

  del_G = ( ( ( var_Max - var_G ) / 6 ) + ( del_Max / 2 ) ) / del_Max;

  del_B = ( ( ( var_Max - var_B ) / 6 ) + ( del_Max / 2 ) ) / del_Max;

  switch var_Max

      case var_R

            H = del_B - del_G;

      case var_G

            H = ( 1 / 3 ) + del_R - del_B;

      case var_B

            H = ( 2 / 3 ) + del_G - del_R;

  end

end

  if  L < 0.5

      S = del_Max / ( var_Max + var_Min );

  else

      S = del_Max / ( 2 - var_Max - var_Min );

  end

    if ( H < 0 )  H = H+1;    end

    if ( H > 1 )  H = H-1;    end

fprintf('H=%f\nS=%f\nL=%f\n',H,S,L);

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容