图像混合addWeighted
程序员文章站
2024-03-25 10:05:34
...
数学公式
对两个图片的每个对应像素执行公式,其中a的取值范围0~1。注意两张图片的大小和类型要相同
相关API
Void cv::addWeighted(
InputArray src1, 输入图像1的Mat
double alpha, 输入图像1的权重
InputArray src2, 输入图像2的Mat
double 1 – alpha, 输入图像2的权重
double gamma, gamma值,暂时0
OuputArray dst, 输出混合图像
Int dtype = -1
)
代码实现
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;
using namespace cv;
Mat src1, src2;
int alpha = 5;
int maxValue = 10;
void blendDemo(int, void*);
int main() {
src1 = imread("D:/a.jpg");
src2 = imread("D:/b.jpg");
imshow("image1", src1);
imshow("image2", src2);
namedWindow("dst", CV_WINDOW_AUTOSIZE);
createTrackbar("alpha value", "dst", &alpha, maxValue, blendDemo);
blendDemo(0, 0);
waitKey(0);
return 0;
}
void blendDemo(int, void*) {
Mat dst;
addWeighted(src1, alpha / 10.0, src2, 1 - alpha / 10.0, 0, dst);
imshow("dst", dst);
}