Обновить

Комментарии 6

А пробовали смотреть ошибку интерполяции? Всегда ли там красиво всё получается и при каком значении шага уже видны косяки невооружённым глазом?
Если в оригинальной таблице были ступеньки или насыщение, не появятся ли артефакты?

Заметить невооруженным глазом, что что-то не так, довольно сложно. Во-первых в изображении должно быть много градиентов, во-вторых трансформация должна быть довольно сильно нелинейной. Для примера, если взять косинус который проходит полный круг (2pi):


def gen(r, g, b): 
    r = -math.cos(r * math.pi*2) / 2 + 0.5 
    g = -math.cos(g * math.pi*2) / 2 + 0.5 
    b = -math.cos(b * math.pi*2) / 2 + 0.5 
    return r, g, b 

Вот результат для таблиц размером 5, 9, 13, 17, 21, 25, 29, 33, 65:











Думаю уже при 21 сложно что-то разглядеть даже имея на руках оригинал.

Какого размера таблицы у вас в итоге получились для практических целей? (Очевидно, что для увеличения насыщенности и т.п. или перевода RGB в Lab должно хватить довольно небольшой, а вот перевод RGB в HSB имеет особую точку – со всеми вытекающими).

У себя я использую для трансформации таблицы размером 25 и 17.

Таблицы сделаны для работы в одном цветовом пространстве. Для преобразований между RGB и HSV есть точные формулы.

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

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации