Я использую ImageMagick 6.8, и у меня есть таблица цветов LUT, созданная в текстовом формате:
# ImageMagick pixel enumeration: 848,1,255,srgb
0,0: (0 , 0 , 0 ) #000000
1,0: (226, 226, 224) #E2E2E0
2,0: (48 , 74 , 0 ) #304A00
# ...
# few hundred more colors
, который имеет один цвет на значение в градациях серого (между 0 и 848 в моем случае использования).
Итак, я хочу преобразовать изображение в градациях серого в RGB-изображение, используя этот LUT без каких-либо необычных гамма-коррекций, преобразований цветового пространства, интерполяций и т. Д. Просто прямая замена. Как это сделать?
Текущие проблемы начинаются с самого начала:
Попытка convert lut.txt lut.png
с различными вариантами всегда дает мне больше цветов, чем они есть на самом деле. В LUT есть 540 уникальных цветов, но при проверке сгенерированного PNG или даже identify lut.txt
отчетов 615! Это означает, что LUT совсем не интерпретируется.
С другой стороны, даже если мне удастся точно прочитать LUT или, возможно, избежать преобразования его в PNG, возникает другая проблема. Использование -clut
отображает весь диапазон оттенков серого (0-65535) в LUT, так что я думаю, что сначала мне нужно его нормализовать. Но это приводит в замешательство ввод градаций серого.
PS Ответ, который может быть здесь полезен, если существует формат изображения с индексированной палитрой размером более 8 бит. Затем этот текст LUT будет использоваться в качестве его палитры, а растровый масштаб - в качестве значений пикселей.