废话不多说,先看效果图:

#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main(int argc, char**argv)
{
Mat src1, src2, dst;
src1 = imread("F:\\LX(OpenCV)\\1.1.jpg");
src2 = imread("F:\\LX(OpenCV)\\1.2.jpg");
if (!src1.data)
{
printf("error1");
return -1;
}
if (!src2.data)
{
printf("error2");
return -1;
}
double t = getTickCount();
double alpha = 0.5;
if (src1.size == src2.size&&src1.type() == src2.type())
{
addWeighted(src1,alpha,src2,(1-alpha),0.1,dst);
namedWindow("out");
imshow("out",dst);
double time = (getTickCount() - t) / getTickFrequency();
printf("time%f\n", time);
}
else {
printf("error3!");
}
waitKey(0);
return 0;
}

本文通过使用OpenCV库实现两张图片的加权融合,展示了如何调整参数以获得平滑过渡的效果。代码中详细介绍了如何读取图片、检查图片是否正确加载、进行加权融合以及显示融合后的图像。
6644

被折叠的 条评论
为什么被折叠?



