线性混合操作:addWeighted(src_linux, alpha, src_win7, 1-alpha, gamma, dst) //alpha可以调节对比度;gamma可以调节亮度
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
int main(){
Mat src_linux, src_win7;
src_linux = imread("/Users/ming/Documents/linuxlogo.jpeg");
resize(src_linux, src_linux, Size(200, 200));
src_win7 = imread("/Users/ming/Documents/win7logo.jpeg");
resize(src_win7, src_win7, Size(200,200));
if (! src_linux.data){
printf("cannot load image linuxlogo...");
}
namedWindow("src_linux img", CV_WINDOW_AUTOSIZE);
imshow("src_linux img", src_linux);
if (! src_win7.data){
printf("cannot load image win7logo...");
}
namedWindow("src_win7 img", CV_WINDOW_AUTOSIZE);
imshow("src_win7 img", src_win7);
float alpha = 0.2; //对比度
int gamma = 30; //亮度
Mat dst;
if (src_linux.rows == src_win7.rows && src_linux.cols == src_win7.cols && src_linux.type() == src_win7.type()){
addWeighted(src_linux, alpha, src_win7, 1-alpha, gamma, dst); //对图像进行线性混合相加,像素按照权值相加
// add(src_linux, src_win7, dst); //两个图像像素值直接相加
// multiply(src_linux, src_win7, dst); //像素值相乘
namedWindow("addweighted img", CV_WINDOW_AUTOSIZE);
imshow("addweighted img", dst);
}
waitKey(0);
}