Photoshop入门学习之色彩转换——RGB & HSL
小标 2018-11-15 来源 : 阅读 1542 评论 0

摘要:本文主要向大家介绍了Photoshop入门学习之色彩转换——RGB & HSL,通过具体的内容向大家展现,希望对大家Photoshop入门学习有所帮助。

本文主要向大家介绍了Photoshop入门学习之色彩转换——RGB & HSL,通过具体的内容向大家展现,希望对大家Photoshop入门学习有所帮助。

<

RGB to HSL 

The R,G,B values are divided by 255 to change the range from 0..255 to 0..1:

R' = R/255

G' = G/255

B' = B/255

Cmax = max(R', G', B')

Cmin = min(R', G', B')

Δ = Cmax - Cmin

 

Hue calculation:



 

Saturation calculation:



 

Lightness calculation:

L = (Cmax + Cmin) / 2

HSL to RGB 

When 0 ≤ H < 360, 0 ≤ S ≤ 1 and 0 ≤ L ≤ 1:

C = (1 - |2L - 1|) × S

X = C × (1 - |(H / 60º) mod 2 - 1|)

m = L - C/2



(R,G,B) = (R'+m, G'+m, B'+m)



算法参考来源://www.rapidtables.com/convert/color/index.htm



Code:

RGB TO HSL

function  [H,S,L]=RgbToHsl(Image_Input)

Image_Input=double(Image_Input)/255;
R_Input=Image_Input(:,:,1);
G_Input=Image_Input(:,:,2);
B_Input=Image_Input(:,:,3);
[heigth,width]=size(R_Input);
S(1:heigth,1:width)=0;
H(1:heigth,1:width)=0;
L(1:heigth,1:width)=0;

for i=1:heigth
    for j=1:width
        temp=[R_Input(i,j),G_Input(i,j),B_Input(i,j)];
        Max_value=max(temp);
        Min_value=min(temp);
        C_value=Max_value-Min_value;
        L(i,j)=(Max_value+Min_value)/2;
        if(C_value==0)
            S(i,j)=0;
        else 
            S(i,j)=C_value/(1-abs(2*L(i,j)-1));
        end  
        X=R_Input(i,j);
        Y=G_Input(i,j);
        Z=B_Input(i,j);
        if(C_value==0)
            continue;
        end
        if(Max_value==X)
            H(i,j)=mod((Y-Z)/C_value,6);
        elseif(Max_value==Y)
            H(i,j)=(Z-X)/C_value+2;
        else
            H(i,j)=(X-Y)/C_value+4;
        end
        H(i,j)=H(i,j)/6;
    end
end



HSL to RGB

function Image_out=HslToRgb(H,S,L)

%% H(0,1),S(0,1),L(0,1)
[height,width]=size(H);
R(1:height,1:width)=0;
G(1:height,1:width)=0;
B(1:height,1:width)=0;

for i=1:height
    for j=1:width
        C=(1-abs(2*L(i,j)-1))*S(i,j);
        X=C*(1-abs(mod(H(i,j)*6,2)-1));
        m=L(i,j)-C/2;
        temp=floor(H(i,j)*6+1);     
     switch(temp)
            case 1
                R(i,j)=C+m;
                G(i,j)=X+m;
                B(i,j)=m;
            case 2
                R(i,j)=X+m;
                G(i,j)=C+m;
                B(i,j)=m;
            case 3
                R(i,j)=m;
                G(i,j)=C+m;
                B(i,j)=X+m;
            case 4
                R(i,j)=m;
                G(i,j)=X+m;
                B(i,j)=C+m;
            case 5
                R(i,j)=X+m;
                G(i,j)=m;
                B(i,j)=C+m;
            case 6
                R(i,j)=C+m;
                G(i,j)=m;
                B(i,j)=X+m;
        end
    end
end
Image_out(:,:,1)=R;
Image_out(:,:,2)=G;
Image_out(:,:,3)=B;    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注常用软件Photoshop频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程