Преобразование гаммы в 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")

0 ответов

Другие вопросы по тегам