繁体   English   中英

OpencvSharp LbgrtoLab

[英]OpencvSharp LbgrtoLab

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

目前我正在使用OpenCvSharp 2.4.10。

即使这个颜色转换代码的含义似乎没有记录,也没有必要绝望 - 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颜色空间。 关于这意味着什么的更多细节可以在这个答案中找到。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM