opencv怎么将两张图片叠在一起,用C++
时间: 2024-03-18 20:40:59 浏览: 12
您可以使用OpenCV中的addWeighted函数将两张图片叠加在一起。具体步骤如下:
1.使用OpenCV的imread函数加载需要叠加的两张图片,例如:cv::Mat img1 = cv::imread("image1.jpg"); cv::Mat img2 = cv::imread("image2.jpg");
2.将两张图片resize到相同的大小,例如:cv::resize(img1, img1, cv::Size(img2.cols, img2.rows));
3.创建一个新的cv::Mat对象,大小与两张图片相同,例如:cv::Mat resultImg = cv::Mat::zeros(img1.size(), img1.type());
4.使用OpenCV的addWeighted函数将两张图片叠加在一起,例如:cv::addWeighted(img1, 0.5, img2, 0.5, 0, resultImg);
5.将cv::Mat对象保存为一张图片文件,例如:cv::imwrite("result.jpg", resultImg);
完整示例代码如下:
```c++
cv::Mat img1 = cv::imread("image1.jpg");
cv::Mat img2 = cv::imread("image2.jpg");
cv::resize(img1, img1, cv::Size(img2.cols, img2.rows));
cv::Mat resultImg = cv::Mat::zeros(img1.size(), img1.type());
cv::addWeighted(img1, 0.5, img2, 0.5, 0, resultImg);
cv::imwrite("result.jpg", resultImg);
```