То есть вы хотите преобразовать цвет RGB в цветовое пространство Lab?Конечно, это возможно.
Но есть много разных стандартов, на которые все ссылаются с общим названием «Lab».Вам нужно будет выбрать один для использования при написании вашего алгоритма.В частности, Photoshop использует стандарт CIELAB D50, поэтому вы можете использовать его, если вам необходимо точно имитировать его обработку.
Еще одна вещь, которую вы должны иметь в виду, это то, что RGBмодель зависит от устройства , что означает, что для преобразования из RGB в Lab сначала необходимо преобразовать RGB в не зависящее от устройства абсолютное цветовое пространство.Adobe делает это в формате «Adobe RGB», но вы можете использовать что-то стандартное, например, sRGB.Процесс настройки учитывает аппаратную зависимость цвета RGB, но преобразует цвет в тот, который не зависит от устройства.Получив это, вы можете сделать последний шаг преобразования цвета в цветовое пространство Lab.
Статья Википедии содержит некоторую справочную информацию и полезные формулы при написании алгоритма преобразования.И вот кто-то, кто уже написал такой алгоритм преобразования .И один для MATLAB , который вы, вероятно, можете конвертировать.
В зависимости от того, насколько вы серьезны (так, вероятно, нет), вы также можете скачать исходный код для GIMP и посмотреть, какони реализовали алгоритмы преобразования.Их программное обеспечение утверждает, что поддерживает пространство Lab.
Будьте осторожны, когда конвертируете обратно в RGB.Цветовое пространство Lab может представлять цвета, которые находятся за пределами диапазона sRGB.Даже в Photoshop большая часть того, что вы видите в режиме Lab, отбрасывается после преобразования изображения обратно в RGB (или CMYK).
Edit: Также стоит учитывать, что еслиВаша единственная цель - осветлить цвет в цветовом пространстве, которое лучше соответствует восприятию человеческих цветов, чем RGB. Вам, возможно, вообще не придется суетиться с Lab.Многие приложения делают это путем преобразования в HSL или HSV цветовое пространство .(Photoshop вызывает HSV, HSB).
Преимущество состоит в том, что вы можете просто отрегулировать значения "Lightness" или "Value", чтобы изменить интенсивность цвета (так же, как вы настраивали бы значение "Luminance" вцветовое пространство Lab), но алгоритмы преобразования намного проще (и часто встроены в стандартные библиотеки по вашему выбору).
Например, см. мой ответ на этот вопрос для алгоритма преобразования, написанного на языке .NET.