Как эффективно преобразовать SRGB в Cielab и Cielab в SRGB? [закрыто
Вопрос
Я не понимаю, как преобразовать SRGB в Cielab и назад. Помоги мне, пожалуйста. это желательно в коде c ++
Решение
Преобразовать из SRGB в RGB, применяя обратную гамма, преобразовать RGB в XYZ, используя матрицу 3x3, преобразовать XYZ в лабораторию с использованием стандартной формулы и белой точки D6500
Рекомендации:
- Лаборатория http://en.wikipedia.org/wiki/lab_color_space
- Srbg http://en.wikipedia.org/wiki/srgb_color_space
Остальное ... вы можете сделать самостоятельно :-)
Другие советы
В случае, если я подготовил список ссылок (на разных языках программирования), которые могут быть полезны для процесса преобразования (SRGB в лабораторию и обратно), а также преобразование 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 (), есть гамма -кодирование и декодирование. OpenCV Color Conversion API: http://docs.opencv.org/3.1.0/de/d25/imgproc_color_conversions.html