Преобразование произвольного диапазона в яркость - PullRequest
1 голос
/ 21 марта 2019

У меня есть двумерная матрица значений в диапазоне <-a, b>.Я хотел бы визуализировать это изображение в градациях серого.Как мне обработать свои данные, чтобы правильно их визуализировать?

Насколько я знаю, человеческий глаз имеет логарифмическую шкалу, поэтому мое преобразование также должно быть логарифмическим.

1 Ответ

1 голос
/ 21 марта 2019

Преобразуйте свои значения в яркость в однородно воспринимаемом цветовом пространстве, например, 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

...