在OpenCV中,可以通過addWeighted()函數來實現圖像的融合和疊加。addWeighted()函數的語法如下:
void addWeighted(InputArray src1, double alpha, InputArray src2, double beta, double gamma, OutputArray dst);
其中,src1和src2分別為要融合的兩幅圖像,alpha和beta分別為兩幅圖像的權重系數,gamma為融合后圖像的亮度值,dst為輸出的融合后的圖像。
示例代碼如下:
#include <opencv2/opencv.hpp>
using namespace cv;
int main() {
Mat img1 = imread("image1.jpg");
Mat img2 = imread("image2.jpg");
if (img1.empty() || img2.empty()) {
std::cout << "Error: Image not found!" << std::endl;
return -1;
}
Mat blendedImage;
double alpha = 0.5;
double beta = 0.5;
double gamma = 0;
addWeighted(img1, alpha, img2, beta, gamma, blendedImage);
imshow("Blended Image", blendedImage);
waitKey(0);
return 0;
}
在這個例子中,我們將兩幅圖像img1和img2按照權重系數alpha和beta進行融合,結果保存在blendedImage中,并顯示出來。您可以調整alpha和beta的值來獲得不同的融合效果。