OpencvSharp LbgrtoLab

4

有人知道LbgrtoLab转换代码中的“L”是什么意思吗?我在网上搜索,找不到任何关于这个转换代码的描述。目前我尝试使用BgrtoLab / LbgrtoLab,发现在使用相同的图像源时,A和B通道的值不同。看起来LBgr可以得到更好的结果。

目前我正在使用OpenCvSharp 2.4.10。

1个回答

4

尽管这个颜色转换代码的含义似乎没有文档记录,但不必绝望 - OpenCV是一个开源库,因此让我们查看源代码

case COLOR_BGR2Lab: case COLOR_RGB2Lab: case COLOR_LBGR2Lab: case COLOR_LRGB2Lab:
case COLOR_BGR2Luv: case COLOR_RGB2Luv: case COLOR_LBGR2Luv: case COLOR_LRGB2Luv:

    // ....

    bool srgb = code == COLOR_BGR2Lab || code == COLOR_RGB2Lab
        || code == COLOR_RGB2Luv || code == COLOR_BGR2Luv;

    // ....

        if (srgb && usRGBGammaTab.empty())
            Mat(1, 256, CV_16UC1, sRGBGammaTab_b).copyTo(usRGBGammaTab);
        else if (ulinearGammaTab.empty())
            Mat(1, 256, CV_16UC1, linearGammaTab_b).copyTo(ulinearGammaTab);

    // ....

这表明前缀L旨在区分非线性(sRGB)和线性RGB色彩空间。有关其含义的更多详细信息,请参见此答案

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接