当前位置: 代码迷 >> 综合 >> 使用addWeighted函数实现两幅图像的阿尔法混合(Alpha Blend)
  详细解决方案

使用addWeighted函数实现两幅图像的阿尔法混合(Alpha Blend)

热度:64   发布时间:2024-02-01 05:43:59.0

在这里插入图片描述

思路

分别从两幅图像中选出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;
}

结果

在这里插入图片描述

  相关解决方案