Преобразование гаммы в Colormath, Lab в RGB
Я пытаюсь преобразовать цвета Lab в RGB БЕЗ гамма-коррекции (или с гаммой = 1). Я использую модуль colormath из Blender. https://python-colormath.readthedocs.io/en/latest/# Кажется, моя настройка гаммы игнорируется. В противном случае преобразование правильное (я проверил его шаг за шагом в Excel, используя мудрость Брюса Линдблума http://www.brucelindbloom.com/index.html?Eqn_RGB_XYZ_Matrix.html
По сути, мне нужно пропустить гамма-компандинг или установить гамма-фактор равным 1.
colormath всегда возвращает значения с гамма-коррекцией, независимо от того, как я установил rgb_gamma. Я подозреваю, что неправильно использую функцию rgb_gamma, но не могу понять, как это сделать правильно.
from colormath import color_objects
from colormath import color_constants
from colormath import density
from colormath.color_conversions import convert_color
from colormath.color_objects import (
LabColor,
sRGBColor,
XYZColor,
)
#77,82 17,56 7,85 input
#0,800 0,456 0,449 sRGB no gamma, calculated in Excel
#0,906 0,706 0,700 gamma corr.
BRlab=LabColor(77.82,17.56,7.85, observer='2', illuminant = 'c')
print(BRlab)
BRxyz=convert_color(BRlab, XYZColor, target_illuminant = 'c')
print(BRxyz)
BRxyz.set_illuminant('c')
BRxyz.set_observer('2')
BRxyz.apply_adaptation(target_illuminant = 'd65', adaptation = 'bradford')
print(BRxyz)
BRrgb=convert_color(BRxyz, sRGBColor, target_illuminant = 'd65')
BRrgb.rgb_gamma=1.0 #this setting seems to be ignored
print("gamma = " , BRrgb.rgb_gamma)
print(BRrgb)
BRrgb.rgb_gamma=2.0 #this setting seems to be ignored, same output no matter if gamma = 1 or gamma = 2
print("gamma = ", BRrgb.rgb_gamma)
print(BRrgb)
print("\n")