如何有效地将sRGB转换为CIELAb和CIELab到sRGB?

时间:2010-10-12 13:49:31

标签: c++ srgb

我不明白如何将sRGB转换为CIELab并向后转换。请帮帮我。在с++代码

中是可取的

2 个答案:

答案 0 :(得分:11)

通过应用反伽玛将sRGB转换为RGB,使用3x3矩阵将RGB转换为XYZ,使用标准公式和D6500白点将XYZ转换为Lab

参考文献:

其余的......你可以自己做: - )

答案 1 :(得分:0)

如果我准备了一个链接列表(使用不同的编程语言),这些链接可以帮助转换过程(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