zoukankan      html  css  js  c++  java
  • RGB与YCbCr颜色空间的互相转换公式

    http://blog.csdn.net/a14730497/article/details/17886127

    Y:明亮度(Luminance或Luma),也就是灰阶值。“亮度”是透过RGB输入信号来建立的,方法是将RGB信号的特定部分叠加到一起。

    Cb:反映的是RGB输入信号蓝色部分与RGB信号亮度值之间的差异。
    Cr:反映了RGB输入信号红色部分与RGB信号亮度值之间的差异。

    在以下两个公式中RGB和YCbCr各分量的值的范围均为0-255。

    RGB转换为YCbCr

    Y   = 0.257*R+0.564*G+0.098*B+16
    Cb = -0.148*R-0.291*G+0.439*B+128
    Cr  = 0.439*R-0.368*G-0.071*B+128

    等效为:

    Y = (1/8192)[(135168 + 4129G) + (2015R + 803B)]     其他的Cb ,Cr 类似过程

    //-------------------------------------------------------------------------------------------------------------------------------

    YCbCr转换为RGB

    R = 1.164*(Y-16)+1.596*(Cr-128)

    G = 1.164*(Y-16)-0.392*(Cb-128)-0.813*(Cr-128)

    B = 1.164*(Y-16)+2.017*(Cb-128)

    或者

    R = 1.164Y                + 1.596Cr - 222.912
    G = 1.164Y - 0.391Cb - 0.813Cr + 135.488
    B = 1.164Y + 2.018Cb                - 276.928

    等效为:

    R >> 9 = 596Y          + 817Cr - 114131
    G >> 9 = 596Y - 200Cb  - 416Cr + 69370
    B >> 9 = 596Y + 1033Cb         - 141787

  • 相关阅读:
    redis命令参考(四) set集合
    redis命令参考(三) List列表相关
    redis命令参考(二)
    redis命令参考(一) SortedSet相关
    insert_into_on_dumplicate_key
    laravel深入分析
    开发中GBK+UTF8编码的处理
    ajax封装调用
    linux正则表达式的用法
    linux 如何保证使程序后台运行(nohup &)
  • 原文地址:https://www.cnblogs.com/agllero/p/4448329.html
Copyright © 2011-2022 走看看