如何从RGB值转换为色温

  • 本文关键字:转换 色温 RGB python colors
  • 更新时间 :
  • 英文 :


如何用RGB值表示颜色(例如,从0-255的三个坐标)并从中产生以开尔文(或米)为单位的色温?

我看到这个问题看起来很接近。然而,问题提到了x和y,答案提到了R1和S1,我认为这是CIE XYZ色彩空间坐标。我也不太确定怎么去那些地方。其他人链接到一篇论文。还有人说,如果没有"说明色彩空间",RGB值就没有意义(我以为我的显示器决定简单地从RGB值显示一些东西?)。

谁能把所有的东西都摆出来,不要指向其他地方,假设我知道所有的颜色术语是什么?

您可以使用color来执行使用colour.xy_to_CCT_Hernandez1999定义的计算:

  import numpy as np
  import colour
  # Assuming sRGB encoded colour values.
  RGB = np.array([255.0, 235.0, 12.0])
  # Conversion to tristimulus values.
  XYZ = colour.sRGB_to_XYZ(RGB / 255)
  # Conversion to chromaticity coordinates.
  xy = colour.XYZ_to_xy(XYZ)
  # Conversion to correlated colour temperature in K.
  CCT = colour.xy_to_CCT(xy, 'hernandez1999')
  print(CCT)
  # 3557.10272422

这是一个Java公式,

  double n = ((0.23881) * Color.red(previewColor) + (0.25499) * Color.green(previewColor) + (-0.58291) * Color.blue(previewColor)) / ((0.11109) * Color.red(previewColor) + (-0.85406) * Color.green(previewColor) + (0.52289) * Color.blue(previewColor));
  double cct  = 449 * Math.pow(n,3) + 3525 * Math.pow(n,2) + 6823.3 * n + 5520.33;

这里previewColor的值是颜色

的整数表示。

最新更新