如何将RGB值转换为色温?

时间:2016-08-10 14:36:12

标签: python colors

如何采用以RGB值表示的颜色(例如,0-255中的三个坐标)并从中生成一个开尔文(或mireds)的color temperature

我看到this question看起来非常接近。但是,问题提及x和y,an answer提到R1和S1,我认为它们是CIE XYZ颜色空间坐标。我不太确定如何去找那些。其他人链接到一篇论文。其他人says RGB值没有"陈述颜色空间" (我以为我的显示器决定只用RGB值显示一些东西?)。

有人可以在没有指向其他地方的情况下整理整个事情并假设我知道所有颜色术语是什么吗?

2 个答案:

答案 0 :(得分:7)

您可以使用Colour使用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

答案 1 :(得分:0)

这是Java中的一个公式,

[GIN-debug] 2019-12-16T18:50:49+05:30 [bzQg6wTpL4cdZ9bM] - "GET /"
[GIN-debug] 2019-12-16T18:50:49+05:30 [bzQg6wTpL4cdZ9bM] - [::1] "GET / HTTP/1.1 200 22.415µs" Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36

这里的 previewColor 值是颜色的整数表示