当从RGB转换为灰度时,据说应该应用通道R,G和B的特定权重.这些重量为:0.2989,0.5870,0.1140.
据说,其原因是人类对这三种颜色的感知/敏感性不同.有时也会说这些是用于计算NTSC信号的值.
但是,我没有在网上找到这方面的好参考.这些价值观的来源是什么?
language-agnostic rgb colors image-processing computer-vision
如何将RGB颜色值转换为纯十进制?
所以我有:RGB(255,255,255)是白色
它的十进制等效值是:16777215
我试过想它可能只是:
var dec = r*g*b; // but this doesn't work
Run Code Online (Sandbox Code Playgroud)
虽然这不起作用.
有人知道要从RGB(或rgba)转换为十进制的算法/等式吗?
我正在尝试生成具有相同感知亮度的 RGB 颜色。
函数 R*0.2126+ G*0.7152+ B*0.0722 据说可以计算给定 RGB 颜色的感知亮度(或等效灰度颜色)。
假设我们对所有 RGB 值使用区间 [0,1],我们可以计算以下内容:
因此,为了使黄色色调与蓝色色调一样暗淡,我可以简单地对每个 RGB 分量的黄色执行以下简单计算:
然而,当做相反的事情,从而将蓝色“缩放”到与原始黄色相同的感知亮度时,B分量明显超过1,这无法在计算机屏幕上显示。
我猜想,多余的 B 分量所缺失的亮度可能会“重新分配”到 R 和 G 分量,从而呈现出更亮的蓝色。那么计算最终 RGB 值的最佳通用方法是什么?