【ISP】通过RGB或YUV改变图像的色度和饱和度

自己曾经尝试过BGR先转成HSV,再改变S分量,但是效果非常差,这里是我是在别人论文上查到的,给大家参考一下。

1.RGB调整饱和度

通过RGB改变图像的饱和度 r的范围一般是(-1,+5)

公式:


B = B + (B-(R+G)/2)*r;
G = G + (G-(R+B)/2)*r;
R = R + (R-(B+G)/2)*r;

效果图:

2.YUV介绍

在YUV空间,Y代表亮度,UV又称CR和CB代表色度偏红和偏紫,要改变饱和度需要将U和V同比例的增加和减少,如下图

2.1YUV调整饱和度(有缺陷,颜色会有点偏移)

通过YUV改变图像的饱和度,这里的r的范围一般为(0 , 5) , 如果为1 表示不改变图像数据

公式如下:


Y = Y;
U = U*r;
V = V*r;

注意:这里的 U~(-128- 128), V~(-128-128) 如果你的UV的范围是0-255 或者 16-240 ,那么就需要先减去128.

效果图:

2.2YUV调整色相

通过yuv 改变图像的色相(Cb即为U,Cr即为V) UV∈(-128,128)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%调节色度
% U' = (U-128) x Cos(H) + (V-128) x Sin(H)
% V' = (V-128) x Cos(H) - (U-128) x Sin(H)
H1=120;
H1=H1/180*pi;
for i=1:m
   for j=1:n 
       Cb1(i,j) =(Cb1(i,j)-128)*sin(H1) +(Cr1(i,j)-128)*cos(H1)+128;
       Cr1(i,j) =(Cr1(i,j)-128)*sin(H1) -(Cb1(i,j)-128)*cos(H1)+128;
   end
end
H2=60;
H2=H2/180*pi;
for i=1:m
   for j=1:n 
       Cb2(i,j) =(Cb2(i,j)-128)*sin(H2) +(Cr2(i,j)-128)*cos(H2)+128;
       Cr2(i,j) =(Cr2(i,j)-128)*sin(H2) -(Cb2(i,j)-128)*cos(H2)+128;
   end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

2.3调整对比度

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
C1=0.5;
C2=2;
for i=1:m
   for j=1:n 
       temp = (Y1(i,j)-128)*C1 + 128;
       Y1(i,j) = min(max(temp, 0), 255);
   end
end
 
for i=1:m
   for j=1:n 
       temp = (Y2(i,j)-128)*C2 + 128;
       Y2(i,j) = min(max(temp, 0), 255);
   end
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

原文链接:通过RGB或YUV改变图像的色度和饱和度_rgb怎么改饱和度-CSDN博客

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值