一、 split()通道分离函数
split()函数的C++版本有两个原型,他们分别是:
C++: void split(const Mat& src, Mat*mvbegin);//&为引用操作符
C++: void split(InputArray m,OutputArrayOfArrays mv);
两种定义用法相同,第一个参数填待分离的Mat型多通道矩阵(二维),第二个参数填分离后的Mat型单通道数组(三维)或一个vector<Mat>对象。应用实例如下:
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main()
{
Mat image = imread("colorful.jpg");
if (image.data == 0)
{
cout << "读取错误" << endl;
}
imshow("原图", image);
//使用Mat容器,用【】访问
//vector<Mat> channels;
//split(image, channels);
//imshow("B", channels[0]);
//imshow("G", channels[1]);
//imshow("R", channels[2]);
//使用Mat容器,用at访问
vector<Mat> channels;
split(image, channels);
imshow("B", channels.at(0));
imshow("