混合原理
其中f0(x)和f1(x)表示混合的两张图像像素
α表示图片占的权重
g(x)表示混合生成的图像像素
补:
实际的操作时候,及对每一个像素操作得到新像素
相关API
参数2和参数3就是两张图片对应的权重,两权重和为1
注意:
混合的两图像一定要大小,通道数一致!!!
混合效果演示(alpha值各占0.5):
混合前的两张图像
图一:
图二:
混合后:
代码:
#include <iostream>
#include<opencv2/opencv.hpp>
#include<math.h>
using namespace cv;
using namespace std;
int main()
{
double alpha=0.5;
Mat img,src,dst;
img=imread ("test1 .jpg");
src = imread("test2.jpg");
imshow("tuyi", img);
imshow("tuer", src);
if (img.rows == src.rows && img.cols == src.cols && img.type() == src.type())//两张图片大小,通道数完全一致执行
{
addWeighted(img, alpha,src,(1.0-alpha),0.0,dst);
imshow("混合后",dst);
}
else
{
cout << "erro" << endl;
}
waitKey(0);
return 0;
}