怎么用cplusplus基于opencv进行两个图像融合成一张图
时间: 2024-01-02 12:05:16 浏览: 66
viewer:基于 OpenSceneGraph 的 Qt 小部件显示图像和 3D 点云
您可以使用OpenCV中的addWeighted函数来将两个图像进行融合。这个函数的原型如下:
```
void cv::addWeighted(
InputArray src1, // 第一个输入图像
double alpha, // 第一个图像的权重
InputArray src2, // 第二个输入图像
double beta, // 第二个图像的权重
double gamma, // 亮度调整参数
OutputArray dst, // 输出图像
int dtype = -1 // 输出图像的数据类型
)
```
其中,src1和src2是要融合的两个图像,alpha和beta是两个图像的权重,gamma是亮度调整参数,dst是输出图像,dtype是输出图像的数据类型。
下面是一个示例代码,展示了如何使用addWeighted函数对两个图像进行融合:
```c++
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
// 读入两个图像
Mat img1 = imread("img1.jpg");
Mat img2 = imread("img2.jpg");
// 对两个图像进行融合
Mat dst;
addWeighted(img1, 0.5, img2, 0.5, 0, dst);
// 显示输出图像
imshow("Merged Image", dst);
waitKey(0);
return 0;
}
```
在这个示例代码中,我们将img1和img2两个图像进行了融合,权重都为0.5。最终得到的输出图像为dst。
阅读全文