cv::cvtColor()用於將圖像從一個顏色空間轉換到另一個顏色空間的轉換(目前常見的顏色空間均支持),並且在轉換的過程中能夠保證數據的類型不變,即轉換后的圖像的數據類型和位深與源圖像一致。
具體調用形式如下:
void cv::cvtColor( cv::InputArray src, // 輸入序列 cv::OutputArray dst, // 輸出序列 int code, // 顏色映射碼 int dstCn = 0 // 輸出的通道數 (0='automatic') );
其中,最后一個參數dstCn用於指定目標圖像的通道數,如果指定的值是默認值0,那么通道數將由輸入圖像和顏色轉換碼決定。
cv::cvtColor()支持多種顏色空間之間的轉換,其支持的轉換類型和轉換碼如下:
1、RGB和BGR(opencv默認的彩色圖像的顏色空間是BGR)顏色空間的轉換
cv::COLOR_BGR2RGB
cv::COLOR_RGB2BGR
cv::COLOR_RGBA2BGRA
cv::COLOR_BGRA2RGBA
2、向RGB和BGR圖像中增添alpha通道
cv::COLOR_RGB2RGBA
cv::COLOR_BGR2BGRA
3、從RGB和BGR圖像中去除alpha通道
cv::COLOR_RGBA2RGB
cv::COLOR_BGRA2BGR
4、從RBG和BGR顏色空間轉換到灰度空間
cv::COLOR_RGB2GRAY
cv::COLOR_BGR2GRAY
cv::COLOR_RGBA2GRAY
cv::COLOR_BGRA2GRAY
5、從灰度空間轉換到RGB和BGR顏色空間
cv::COLOR_GRAY2RGB
cv::COLOR_GRAY2BGR
cv::COLOR_GRAY2RGBA
cv::COLOR_GRAY2BGRA
6、RGB和BGR顏色空間與BGR565顏色空間之間的轉換
cv::COLOR_RGB2BGR565
cv::COLOR_BGR2BGR565
cv::COLOR_BGR5652RGB
cv::COLOR_BGR5652BGR
cv::COLOR_RGBA2BGR565
cv::COLOR_BGRA2BGR565
cv::COLOR_BGR5652RGBA
cv::COLOR_BGR5652BGRA
7、灰度空間域BGR565之間的轉換
cv::COLOR_GRAY2BGR555
cv::COLOR_BGR5552GRAY
8、RGB和BGR顏色空間與CIE XYZ之間的轉換
cv::COLOR_RGB2XYZ
cv::COLOR_BGR2XYZ
cv::COLOR_XYZ2RGB
cv::COLOR_XYZ2BGR
9、RGB和BGR顏色空間與uma色度(YCrCb空間)之間的轉換
cv::COLOR_RGB2YCrCb
cv::COLOR_BGR2YCrCb
cv::COLOR_YCrCb2RGB
cv::COLOR_YCrCb2BGR
10、RGB和BGR顏色空間與HSV顏色空間之間的相互轉換
cv::COLOR_RGB2HSV
cv::COLOR_BGR2HSV
cv::COLOR_HSV2RGB
cv::COLOR_HSV2BGR
11、RGB和BGR顏色空間與HLS顏色空間之間的相互轉換
cv::COLOR_RGB2HLS
cv::COLOR_BGR2HLS
cv::COLOR_HLS2RGB
cv::COLOR_HLS2BGR
12、RGB和BGR顏色空間與CIE Lab顏色空間之間的相互轉換
cv::COLOR_RGB2Lab
cv::COLOR_BGR2Lab
cv::COLOR_Lab2RGB
cv::COLOR_Lab2BGR
13、RGB和BGR顏色空間與CIE Luv顏色空間之間的相互轉換
cv::COLOR_RGB2Luv
cv::COLOR_BGR2Luv
cv::COLOR_Luv2RGB
cv::COLOR_Luv2BGR
14、Bayer格式(raw data)向RGB或BGR顏色空間的轉換
cv::COLOR_BayerBG2RGB
cv::COLOR_BayerGB2RGB
cv::COLOR_BayerRG2RGB
cv::COLOR_BayerGR2RGB
cv::COLOR_BayerBG2BGR
cv::COLOR_BayerGB2BGR
cv::COLOR_BayerRG2BGR
cv::COLOR_BayerGR2BGR