2017-12-12 14 views
4

변환 코드 LbgrtoLab에서 "L"이 무엇인지 아는 사람이 있습니까? 웹에서 검색 한이 변환 코드에 대한 설명을 찾을 수 없습니다. 현재 BgrtoLab/LbgrtoLab을 모두 사용하려고했는데 동일한 이미지 소스를 사용하여 A 및 B 채널의 값이 서로 다릅니다. LBgr이 더 나은 결과를 얻을 수 있다고합니다.OpencvSharp LbgrtoLab

현재 OpenCvSharp 2.4.10을 사용하고 있습니다.

답변

4

비록이 색상 변환 코드의 의미가 문서화되어 있지는 않지만, 절망 할 필요가 없습니다. OpenCV는 오픈 소스 라이브러리이므로 source code을 참조하십시오.

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 색 공간을 구분하는 것을 의미 있음을 시사한다. 이것이 의미하는 바에 대한 자세한 내용은 this answer에서 확인할 수 있습니다.