【发布时间】:2010-10-12 13:49:31
【问题描述】:
我不明白如何将 sRGB 转换为 CIELab 并向后转换。请帮帮我。在 с++ 代码中是可取的
【问题讨论】:
我不明白如何将 sRGB 转换为 CIELab 并向后转换。请帮帮我。在 с++ 代码中是可取的
【问题讨论】:
通过应用反伽玛从 sRGB 转换为 RGB,使用 3x3 矩阵将 RGB 转换为 XYZ,使用标准公式和 D6500 白点将 XYZ 转换为 Lab
参考资料:
剩下的……你可以自己做:-)
【讨论】:
以防万一,我准备了一个链接列表(使用不同的编程语言),这有助于转换过程(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() 的方法,其中有一个 gamma 编码和解码。 OpenCV颜色转换API:http://docs.opencv.org/3.1.0/de/d25/imgproc_color_conversions.html
【讨论】: