从光谱响应中找到色温
Find color temperature from spectral response
我搜索了一些 Python 可以从光谱仪的光谱响应中找到色温的库。
我有这样的单频谱输出:
我想找到光源的色温。
输出应该像这里(值不是图):
我搜索了很多但没有找到任何东西,在像 colour-science 或 python-colormath 这样的库中我没有看到这样的选项。有可能吗?
该过程通常需要以下步骤:
- 将光谱转换为 CIE XYZ 值
- 使用特定的 CIE 颜色系统将 XYZ 值转换为 RGB
- 应用伽马校正
有说明和代码here。
更新
您可能更喜欢使用这个项目:https://github.com/aerobio/spectra/
当然可以 Colour:
>>> import colour
>>> D65 = colour.ILLUMINANTS_SDS['D65']
>>> XYZ = colour.sd_to_XYZ(D65)
>>> xy = colour.XYZ_to_xy(XYZ)
>>> colour.xy_to_CCT(xy)
6507.5108766555786
或使用自动颜色转换图:
>>> import colour
>>> colour.convert(D65, 'Spectral Distribution', 'CCT', sd_to_XYZ={'illuminant': colour.sd_ones()})
6507.5108766555786
你必须在这里指定一个光源来覆盖默认的 D65:)
我搜索了一些 Python 可以从光谱仪的光谱响应中找到色温的库。 我有这样的单频谱输出:
我想找到光源的色温。
输出应该像这里(值不是图):
我搜索了很多但没有找到任何东西,在像 colour-science 或 python-colormath 这样的库中我没有看到这样的选项。有可能吗?
该过程通常需要以下步骤:
- 将光谱转换为 CIE XYZ 值
- 使用特定的 CIE 颜色系统将 XYZ 值转换为 RGB
- 应用伽马校正
有说明和代码here。
更新
您可能更喜欢使用这个项目:https://github.com/aerobio/spectra/
当然可以 Colour:
>>> import colour
>>> D65 = colour.ILLUMINANTS_SDS['D65']
>>> XYZ = colour.sd_to_XYZ(D65)
>>> xy = colour.XYZ_to_xy(XYZ)
>>> colour.xy_to_CCT(xy)
6507.5108766555786
或使用自动颜色转换图:
>>> import colour
>>> colour.convert(D65, 'Spectral Distribution', 'CCT', sd_to_XYZ={'illuminant': colour.sd_ones()})
6507.5108766555786
你必须在这里指定一个光源来覆盖默认的 D65:)