任意范围到亮度的转换
Conversion of arbitrary range to luma
我有 <-a, b>
范围内的二维值矩阵。我想通过灰度图像可视化此图像。我应该如何处理我的数据以正确地可视化它?
据我所知人眼有对数刻度,所以我的变换也应该是对数的。
将您的值转换为感知均匀颜色的亮度 space,例如 CIE Lab 或 Luv。然后将其转换为 RGB 以进行显示。
例如,这些在 colormath 模块中可用。
如果您的输入值在 x
L = 100*(x - xmin) / (xmax - xmin) # L is 0-100
a, b = 0, 0 # neutral values
from colormath.color_objects import LabColor, RGBColor
from colormath.color_conversions import convert_color
lab = LabColor(L, a, b)
rgb = convert_color(lab, RGBColor)
# display rgb
Matplotlib 在颜色映射部分中有很多关于此的信息:。 https://matplotlib.org/users/colormaps.html
我有 <-a, b>
范围内的二维值矩阵。我想通过灰度图像可视化此图像。我应该如何处理我的数据以正确地可视化它?
据我所知人眼有对数刻度,所以我的变换也应该是对数的。
将您的值转换为感知均匀颜色的亮度 space,例如 CIE Lab 或 Luv。然后将其转换为 RGB 以进行显示。
例如,这些在 colormath 模块中可用。
如果您的输入值在 x
L = 100*(x - xmin) / (xmax - xmin) # L is 0-100
a, b = 0, 0 # neutral values
from colormath.color_objects import LabColor, RGBColor
from colormath.color_conversions import convert_color
lab = LabColor(L, a, b)
rgb = convert_color(lab, RGBColor)
# display rgb
Matplotlib 在颜色映射部分中有很多关于此的信息:。 https://matplotlib.org/users/colormaps.html