美文网首页
改变图像饱和度的几种方法

改变图像饱和度的几种方法

作者: 罗引杰 | 来源:发表于2021-01-05 15:54 被阅读0次

一. YUV 方法(或者叫YCbCr)

通过YUV改变图像的饱和度,r的范围可以设置为为(1/5, 5) , 如果为r=1 表示不改变图像数据
公式如下:

Y = Y;
U = U*r;  //实际上表示色差B-Y 扩大r倍
V = V*r;  //实际表示色差R-Y 扩大r倍

二、灰度图法混合法(和YUV法其实是等价的,下面有证明)

原图和灰度图进行加权组合即可改变图像的饱和度

saturate = function (pixels, value) {
    var d = pixels.data;
    for (var i = 0; i < d.length; i += 4) {
        var r = d[i]; 
        var g = d[i + 1];
        var b = d[i + 2];
        var gray = 0.2989*r + 0.5870*g + 0.1140*b; //weights from CCIR 601 spec
        d[i] = -gray * value + d[i] * (1+value);
        d[i+1] = -gray * value + d[i+1] * (1+value);
        d[i+2] = -gray * value + d[i+2] * (1+value);
        //normalize over- and under-saturated values
        if(d[i] > 255) d[i] = 255;
        if(d[i+1] > 255) d[i] = 255;
        if(d[i+2] > 255) d[i] = 255;
        if(d[i] < 0) d[i] = 0;
        if(d[i+1] < 0) d[i] = 0;
        if(d[i+2] < 0) d[i] = 0;
    }
    return pixels;
};

其实灰度图法和YUV法是等价的, 都是改变色差的权重
如果将一下代码更改权重, 则该算法和算法一是等价的

B = B + r1(B-Y)  => r1 = r-1
G = G + r2(G-Y) =>r2  = r-1 (推导见附录r2推导过程)
R = R + r3(R-Y)  => r3 = r-1

r2 = r-1 推导过程

由 BT601 YUV公式 可得:
G = Y - 0.3455 * U - 0.7169*V;  
U = (B-Y)/1.772;    
V = (R-Y)/1.402;     
即 G = Y -0.3455 * U - 0.7169 *V
G = Y - r(0.3455 * U + 0.7169 *V)  //法一   ①
G = G + r2(G-Y)                              //法二   ②
①②联立得:
Y - r(0.3455 * U + 0.7169 *V) = (1+r2)(Y - 0.3455 * U - 0.7169*V) - r2*Y     
                               =  Y - (1+r2)*( 0.3455*U +0.7169V )
=> 1+r2 = r 
=> r2 = r -1

相关文章

  • 改变图像饱和度的几种方法

    一. YUV 方法(或者叫YCbCr) 通过YUV改变图像的饱和度,r的范围可以设置为为(1/5, 5) , 如...

  • 彩照变黑白照效果的几种方法

    一、图像--调整--去色 二、图像--调整--色相/饱和度:把饱和度调到最低,即变黑白照片。此方法效果与去色一样。...

  • 饱和度、亮度、对比度

    1.亮度、饱和度、对比度色相:色相通俗的说就是“颜色”,色相的改变就是颜色的改变亮度:图像亮度通俗理解便是图像的明...

  • 着色器图像处理(饱和度)

    图像的自身混合操作:图像处理是根据图像自身计算并生成基值,图像可能为灰度图或模糊图像 饱和度 颜色饱和度可描述为颜...

  • 边缘检测(上)

    前半部分的几种方法主要将一幅图像变换成只由边缘组成的图像,而后半部分的几种方法是将图像轮廓分离出来。当然这篇文章只...

  • 计算机视觉算法工程师常见面试题2

    一、常见的数据增广方法 Color Jittering:对颜色的数据增强:图像亮度、饱和度、对比度变化;彩色变换 ...

  • opencv在android平台下的开发【4】-图像滤波详解

    前言 在上一篇opencv-android-图像平滑处理文章中,简单介绍了几种图像平滑,也就是图像模糊的方法,使用...

  • PS亡羊补牢系列:4、饱和度&明度&对比度&清晰度

    饱和度 俗称颜色的鲜艳度。饱和度颜色更容易引起视觉疲劳。而中低饱和度颜色不会。饱和度颜色跟容易吸引眼球,在图像中负...

  • 思维导图

    作业来了 尝试着用抽象词变为形象图像的几种常用转换方法把下列词语转化为图像。 我们看看哪位伙伴画的图像最有趣,最...

  • 4月7日作业

    【4.7打卡作业】 把词语转化为图像 尝试着用抽象词变为形象图像的几种常用转换方法把下列词语转化为图像。 我们看看...

网友评论

      本文标题:改变图像饱和度的几种方法

      本文链接:https://www.haomeiwen.com/subject/fehwoktx.html