轉載請注明出處與作者
OpenCV提供了一個函數cv::cvtColor可以進行色彩空間的轉換. 提供了將近100種的類型轉換.
例如CV_BGR2HLS,CV_RGB2HLS,CV_HLS2RGB等等...
void cvtColor(InputArray src, OutputArray dst, int code, int dstCn=0 )
這個函數可以進行不同色彩空間的轉換.
第三個參數code是轉換類型,使用預定義的宏,格式類似于CV_源空間格式2新空間格式.
第四個參數dstCn是轉換后的channel數.默認情況下是0,即根據源格式和新格式自動確定.
我們這個類中只封裝了幾個類型,最常用的就是ToGray函數,將彩色圖像轉換為單channel的灰度圖.
如果需要可以自行封裝.
注意:一般情況下cv::Mat中存儲的格式為BGR格式.
public: //色彩空間變換//注意默認情況下Mat中存儲的格式為BGR.
//一下函數均是從BGR格式轉換到其他格式(invert為true時是從其他格式轉換為BGR格式)
//如果源格式非BGR(或反向轉換的目的格式不是BGR)請使用ConvertColor函數進行轉換.
bool ToGray(int invert=false);
bool ToXYZ(int invert=false);
bool ToYCrCb(int invert=false);
bool ToHSV(int invert=false);
bool ToLab(int invert=false);
bool ToHLS(int invert=false);
//!色彩空間變換.