在OpenCV中,將兩個圖片矩陣進行融合變成一個圖片用到的是cvAddWeighted函數。在cvAddWeighted函數中,有兩個源圖象image1 和 image2。兩個圖象可以是任何象素類型,只要它們的類型相同。它們可以是單通道或是三通道,只要它們相符。但它們的ROI必須有相同的大小,否則會編譯出錯!
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat image = imread("C:\\Desktop\\1.jpg",199);
Mat logo = imread("C:\\Desktop\\4.jpg");
namedWindow("原畫圖");
imshow("原畫圖", image);
namedWindow("logo圖");
imshow("logo圖", logo);
Mat imageROI;
imageROI = image(Rect(400, 350, logo.cols, logo.rows));
addWeighted(imageROI, 0.3, logo, 0.7, 0., imageROI);//將圖像加到原圖上
namedWindow("融合效果圖");
imshow("融合效果圖", image);
waitKey();
return 0;
}
程序運行後,處理後的圖像如圖: