【问题标题】:What is a color matrix for adjusting luminance?什么是调整亮度的颜色矩阵?
【发布时间】:2011-08-01 03:24:18
【问题描述】:

到处搜索有关将图像转换为亮度 (B&W) 或在不改变亮度的情况下调整饱和度的大量信息。但是如何修改亮度本身呢?例如,如何使用 5x5 矩阵增加红色通道亮度?最终这将在 C 中使用,但同样的数学应该适用于 java 或 flash。

【问题讨论】:

    标签: c# objective-c image-processing image-manipulation


    【解决方案1】:

    我相信你改变所有三个颜色值都是一样的......

    要缩放 RGB 颜色,使用这样的矩阵:

    float mat[4][4] = {
        rscale, 0.0,    0.0,    0.0,
        0.0,    gscale, 0.0,    0.0,
        0.0,    0.0,    bscale, 0.0,
        0.0,    0.0,    0.0,    1.0,
    };
    

    发件人:http://www.graficaobscura.com/matrix/index.html

    【讨论】:

    • 对,对不起,我应该解释一下。我有用于亮度、饱和度、色调、变化和着色的颜色矩阵操作。我只是不知道如何使一个工作为亮度。
    • 哦,上面的矩阵也是用来调节亮度的,和亮度差不多,但不完全一样:)
    【解决方案2】:

    对于从谷歌来到这里的任何人,这里是缩放亮度的矩阵:

    rl×l + gl + bl    gl×l - gl         bl×l - bl         0
    rl×l - rl         gl×l + rl + bl    bl×l - bl         0
    rl×l - rl         gl×l - gl         bl×l + rl + gl    0
    0                 0                 0                 1
    

    在哪里

    • l — 亮度倍增器,
    • rl — 红色亮度(sRGB 为 0.213),
    • gl — 绿色亮度(sRGB 为 0.715),
    • bl — 蓝色亮度(sRGB 为 0.072)。

    请注意:这个矩阵很容易产生色域外的颜色,所以当你期望得到准确的结果时不要使用它。例如,对于1, 0, 0, 1 向量和l=2,它将产生1.213, 0.213, 0.213, 1 结果。从技术上讲,这个向量具有预期的亮度 (0.426),但显示的颜色将是 ≈0.381。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-18
      • 2016-12-08
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 2010-10-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多