OpenCV中默認imread函數加載圖像文件,加載進來的是三通道彩色圖像,色彩空間是RGB色彩空間、通道順序是BGR(藍色、綠色、紅色)、對於三通道的圖像OpenCV中提供了兩個API函數用以實現通道分離與合併。ios
split // 通道分類函數
merge // 通道合併spa
#include <opencv2/opencv.hpp>input
#include <iostream>it
using namespace cv;io
using namespace std;opencv
int main(int argc, const char *argv[])class
{test
Mat src = imread("D:/test.png");stream
if (src.empty()) {
printf("could not load image...\n");
return -1;
}
namedWindow("input", WINDOW_AUTOSIZE);
imshow("input", src);
vector<Mat> mv;
Mat dst1, dst2, dst3;
// 藍色通道爲零
split(src, mv);
mv[0] = Scalar(0);
merge(mv, dst1);
imshow("output1", dst1);
// 綠色通道爲零
split(src, mv);
mv[1] = Scalar(0);
merge(mv, dst2);
imshow("output2", dst2);
// 紅色通道爲零
split(src, mv);
mv[2] = Scalar(0);
merge(mv, dst3);
imshow("output3", dst3);
waitKey(0);
return 0;
}