如何将纳米/透射率csv数据集转换为LUT的RGB值?

bpzcxfmw  于 2023-04-18  发布在  其他
关注(0)|答案(1)|浏览(116)

我有一个单一的曲线波长图表与x/y绘图点的纳米(x)/漫反射密度或透射率%(y)。我有它作为一个表。然后,我如何将工程师这个数据产生RGB曲线,将重新创建整体颜色?我的最终目标是产生一个线性的日志3D LUT立方体。这只是一个近似值。任何帮助将不胜感激。
我的数据是从400纳米到700纳米(可见光谱),如下:-
csv data
我在找一个读取csv表的方法第1列是纳米波长,第2列是透射率。我试图生成一个分裂的RGB曲线,反映图表csv表中的数据转换为CIE 1964/然后RGB值。我想最终将其转换为LUT,以反映柯达摄影滤镜的透射率影响的颜色-在这种情况下是琥珀色滤镜-并且显示在曲线立方体中每种颜色接受多少透射率以实现彩色图像。

enxuqcxy

enxuqcxy1#

使用Colour

import colour
# Using gaussian distribution reshaped to a uniform distribution with the 400-700nm shape and 1nm interval:
sd_transmittance = colour.sd_gaussian(650, 50).align(colour.SpectralShape(400, 700, 1))
colour.plotting.plot_single_sd(sd_transmittance)
# Transmitting using "CIE Standard Illuminant D65" as the "light source".
# The output is relative percentage, thus dividing by 100 to get a value in range [0, 1]:
XYZ = colour.sd_to_XYZ(sd_transmittance, illuminant=colour.SDS_ILLUMINANTS["D65"]) / 100
# Direct conversion from "CIE XYZ" tristimulus values to linear "sRGB":
colour.XYZ_to_sRGB(XYZ)
array([ 0.96628694,  0.36616433, -0.38398073])

注意输出颜色如何具有负蓝色分量,这意味着 sRGB 色彩空间无法再现它。

相关问题