分离通道
用split函数可分离多通道,如将多通道矩阵m分离为多个单通道,这些单通道矩阵被存放在vector容器中。代码如下:
Mat m = (Mat_<Vec3f>(2,2) << Vec3f(1,12,56) ,Vec3f(2,5,32),
Vec3f(2,3,74),Vec3f(21,3,15));
vector<Mat> planes;
split(m,planes);//分离通道
合并通道
可以将多个具有相同尺寸和数据类型的单通道矩阵合并为一个多通道矩阵。
Mat r(3,4,CV_8UC1, Scalar(3));
Mat g(3,4,CV_8UC1, Scalar(2));
Mat b(3,4,CV_8UC1, Scalar(1));
Mat rgb( 3, 4, CV_8UC3);
vector<Mat> src;
src.push_back(b);//往vector里存入数据
src.push_back(g);
src.push_back(r);
merge(src,rgb);
重载函数:void merge(const Mat* mv, size_t count, OutputArray dst);
上一篇:创建多通道Mat对象