void QuickDemo::channels_demo(Mat& image)
{
//split函数把一张多通道的图的分离成三通道
std::vectormv;
split(image, mv);//分离
imshow(“蓝色”, mv[0]);
imshow(“绿色”, mv[1]);
imshow(“红色”, mv[2]);
//merge函数就是把三个单通道的图像合并成一个多通道图像,
Mat dst;
mv[0] = 0;//归零通道0
//mv[1] = 0;//归零通道0//
merge(mv, dst);//合并三个通道
imshow(“红色”, dst);//显示,跟上面的mv[0] = 0;一起理解就是比如说吧通道0归零了,显示剩下的两个通道
mixChannels主要就是把输入的矩阵(或矩阵数组)的某些通道拆分复制给对应的输出矩阵(或矩阵数组)的某些通道中,其中的对应关系就由fromTo参数制定.
这句话很全面,但是可能有点绕,可以结合下面的代码理解,
输入的矩阵或者数组就是image,输出的矩阵或者的数组就是dst,
然后form_to就是对应的关系,
总结mixChannels,就是输入,输出,然后输出入的关系,
int form_to[] = { 0,2,1,1,2,0 };//0通道的给了2通道,1通道的给了2通道,1通道还是在1通道
mixChannels(&image,1, &dst,1, form_to,3);//通道混合
imshow("通道混合", dst);//最后显示dst
}