【opencv】图像通道分离与合并
目录: 1.split() 2.merge()
1.split() 参数一:输入图像 参数二:分离图像数组
代码演示:
#include<iostream>
#include<opencv2opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("D:\photogallery\人物\image_5.png");
vector<Mat> mv;
split(img, mv);
//mv[1] = Scalar(0);
imshow("blue channl", mv[0]);
imshow("green channl", mv[1]);
imshow("red channl", mv[2]);
imshow("img", img);
waitKey(0);
return 0;
}
分离完后,会是三张灰度图,这是因为现在图像已经变成单通道,其灰度值就代表它之前在其所在通道的比重。
2.merge() 参数一:输入图像数组 参数二:输出图像
见代码示例
#include<iostream>
#include<opencv2opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
Mat img = imread("D:\photogallery\人物\image_5.png");
vector<Mat> mv;
split(img, mv);
mv[1] = Scalar(0);//把绿色通道置0
//bitwise_not(mv[1], mv[1]);//绿色通道取反
Mat dest;
merge(mv, dest);
imshow("blue channl", mv[0]);
imshow("green channl", mv[1]);
imshow("red channl", mv[2]);
imshow("dest", dest);
imshow("img", img);
waitKey(0);
return 0;
}
