任意范围到亮度的转换

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