#include <iostream>
#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
//#include<opencv2/opencv.hpp>
//#include<cassert>
//#include<vector>
using namespace std;
using namespace cv;
int main()
{
Mat srcImage=imread("girl.jpg",1);
Mat imageBlue,imageGreen,imageRed;
Mat mergeImage;
//定义一个Mat向量容器保存拆分后的数据
vector<Mat> channels;
//判断文件加载是否正确
assert(srcImage.data!=NULL);
namedWindow("Blue",CV_WINDOW_AUTOSIZE);
namedWindow("Green",CV_WINDOW_AUTOSIZE);
namedWindow("Red",CV_WINDOW_AUTOSIZE);
namedWindow("mergeImage",CV_WINDOW_AUTOSIZE);
//通道的拆分
split(srcImage,channels);
//提取蓝色通道的数据
imageBlue = channels.at(0);
imshow("Blue",imageBlue);
//提取绿色通道的数据
imageGreen = channels.at(1);
imshow("Green",imageGreen);
//提取红色通道的数据
imageRed = channels.at(2);
imshow("Red",imageRed);
//对拆分的通道数据合并
merge(channels ,mergeImage);
imshow("mergeImage",mergeImage);
waitKey();
system("pause");
return 0;
}
将图片颜色拆分后,为什么imageBlue,imageGreen,imageRed图像显示都是灰度图像而不是单一BGR图像,
求大神指导