思路
分别从两幅图像中选出ROI区域,然后使用addWeighted函数混合即可
下面的代码实现将一幅猫的图像和人脸的图像进行阿尔法混合
代码
//
// Created by Martin on 2020/7/25.
//
#include <opencv2/opencv.hpp>/*** 从src2中(0, 0)开始的ROI与src1中(x, y)开始的ROI进行alpha混合**/int main()
{cv::Mat src1 = cv::imread("../res/cat.jpg");cv::Mat src2 = cv::imread("../res/face.jpg");int x = 100;int y = 160;int w = 250;int h = 250;double alpha = 0.3;double beta = 0.7;cv::Mat roi1(src1, cv::Rect(x, y, w, h));cv::Mat roi2(src2, cv::Rect(0, 0, w, h));cv::addWeighted(roi1, alpha, roi2, beta, 0.0, roi1);cv::namedWindow("Alpha Blend", 0);cv::imshow("Alpha Blend", src1);cv::waitKey(0);cv::destroyAllWindows();return 0;
}