Как эффективно конвертировать sRGB в CIELAB и CIELab в sRGB?

Я не понимаю, как преобразовать sRGB в CIELab и обратно. Помоги мне, пожалуйста. желательно в коде С++


person Conficker    schedule 12.10.2010    source источник


Ответы (2)


Преобразование из sRGB в RGB с применением обратной гаммы, преобразование RGB в XYZ с использованием матрицы 3x3, преобразование XYZ в Lab с использованием стандартной формулы и точки белого D6500

Рекомендации:

Остальное... вы можете сделать сами :-)

person Artyom    schedule 12.10.2010

На всякий случай я подготовил список ссылок (на разных языках программирования), которые могут быть полезны для процесса преобразования (sRGB в LAB и обратно), а также преобразования sRGB в линейный RGB. Линейный RGB можно дополнительно использовать для баланса белого и калибровки цвета изображения (предоставляется цветовая палитра, например цветовая диаграмма Macbeth).

Интересные ссылки:

(i) Понимание sRGB и линейного пространства RGB: http://filmicgames.com/archives/299; http://www.cambridgeincolour.com/tutorials/gamma-correction.htm

(ii) Учебное пособие по MATLAB: https://de.mathworks.com/help/vision/ref/colorspaceconversion.html

(iii) Пакет Python: http://pydoc.net/Python/pwkit/0.2.1/pwkit.colormaps/

(iv) Код C: http://svn.int64.org/viewvc/int64/colors/color.c?view=markup

(v) OpenCV не обеспечивает преобразование sRGB в линейный RGB, но выполняет преобразование внутри кода color.cpp (OpenCV_DIR\modules\imgproc\src\color.cpp). Обратите внимание на метод под названием initLabTabs(), там есть кодирование и декодирование гаммы. API преобразования цвета OpenCV: http://docs.opencv.org/3.1.0/de/d25/imgproc_color_conversions.html

person Sanchit    schedule 11.11.2016