Opencv C++ 圖像通道合併與拆分
圖片下載:
鏈接: https://pan.baidu.com/s/1RppuU7_28Tri3Mgzv9k_fw 提取碼: 2djg
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
using namespace std;
using namespace cv;
int main()
{
//1.讀取圖片
Mat img_jugg = imread("../data/dota_jugg.jpg");
Mat img_logo = imread("../data/dota_logo.jpg", 0);
//2.拆分圖片
Mat img_channels[3];
split(img_jugg, img_channels);
//3.區域圖片混合
Mat img_blue = img_channels[0];
Mat img_roi = img_blue(Rect(500, 250, img_logo.cols, img_logo.rows));
addWeighted(img_roi, 0.7, img_logo, 0.3, 0, img_roi);
//4.圖片組合
Mat img_merge;
merge(img_channels, 3, img_merge);
//5.顯示圖片
imshow("img_jugg", img_jugg);
imshow("logo", img_logo);
imshow("blue", img_blue);
imshow("merge", img_merge);
waitKey();
destroyAllWindows();
return 0;
}
處理結果:
//拆分
void cv::split(
const Mat & src, //輸入圖片;
Mat * mvbegin //通道拆分後的圖片;
)
//組合
void cv::merge(
const Mat* mv, //分通道圖片數
size_t count, //合併的通道數
OutputArray dst //輸出合併後的圖片
)