我不明白如何将 sRGB 转换为 CIELab 并向后转换。请帮帮我。在 с++ 代码中是可取的
2 回答
通过应用反伽玛从 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()的方法,有一个伽玛编码和解码。OpenCV 颜色转换 API:http ://docs.opencv.org/3.1.0/de/d25/imgproc_color_conversions.html