如何计算亮度相同的RGB值

我试图用相同的感知亮度生成RGB颜色。

据说函数R * 0.2126 + G * 0.7152 + B * 0.0722用于计算给定RGB颜色的感知亮度(或等效灰度颜色)。

假设我们对所有RGB值使用区间[0,1],我们可以计算以下内容:

  • 黄= RGB(1,1,0)=>亮度= 0.9278
  • 蓝= RGB(0,0,1)=>亮度= 0.0722
  • 所以,为了使黄色的色调与蓝色一样暗淡,我可以简单地对每个RGB分量执行黄色的简单计算:

  • dim_yellow =黄色* 0.0722 / 0.9278
  • 然而,当做相反的事情时,因此将蓝色“缩放”到与原始黄色相同的感知亮度,B分量显然超过1,这不能在计算机屏幕上显示。

    我猜想多余的B分量中缺失的亮度可以“重新分配”到R和G分量,伪造更亮的蓝色。 那么计算这些最终RGB值的最佳一般方法是什么?


    我建议您使用HSV颜色模型而不是RGB,因为您可以轻松实现只需修改“值(亮度)”组件的内容。 wiki页面还包含如何将RGB转换为HSV并返回

    编辑:尝试使用CIELAB色彩空间,因为它接近人类的视野

    链接地址: http://www.djcxy.com/p/87033.html

    上一篇: How to calculate RGB values with identical perceived brightness

    下一篇: How to calculate "amount" of color component in an RGB color