gpt4 book ai didi

image - 将 RGB 转换为 sRGB?

转载 作者:行者123 更新时间:2023-12-04 04:10:22 29 4
gpt4 key购买 nike

我正在尝试将 RGB 转换为感知统一的色彩空间 CIELAB。维基百科指出:

"The RGB or CMYK values first must be transformed to a specific absolute color space, such as sRGB or Adobe RGB. This adjustment will be device-dependent, but the resulting data from the transform will be device-independent, allowing data to be transformed to the CIE 1931 color space and then transformed into L*a * b*."



我知道一旦转换为 sRGB,就会有一些直接的转换,但我还没有找到任何可以从 RGB 转换为 sRGB 的 Material 。那么,有哪些方法可以进行这种转换?

最佳答案

不,你不应该从(线性)RGB 到 sRGB。事实上,情况正好相反。以下是步骤:

  • 将 sRGB 转换为线性 RGB。 sRGB 图像是 Gamma 编码,这意味着相机应用 Gamma 函数 pow(x, 1/2.2) 到光信号上。此 sRGB 位于非线性的 Gamma 空间中。
  • 现在,将线性 RGB 转换为 LAB 涉及两个步骤:首先是将线性 RGB 转换为 XYZ 颜色空间(这是一个基本的颜色空间)。这种转换是一种线性运算,即矩阵乘法。这就是为什么您需要线性 RGB 值而不是 sRGB 的原因。它需要在线性空间中。最后,XYZ 值通过非线性运算转换为 LAB 值,其中包含一些标准公式(您无需担心)。

  • 有趣的链接:

    (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) . check out 方法名为 initLabTabs() ,有 Gamma 编码和解码。 OpenCV 颜色转换 API: http://docs.opencv.org/3.1.0/de/d25/imgproc_color_conversions.html

    关于image - 将 RGB 转换为 sRGB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35952564/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com