线性混合+ROI

相关代码:

#include <opencv2/opencv.hpp>
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    Mat src = imread("E:\VS2015Opencv\vs2015\project\picture\cat.jpg");
    Mat logo = imread("E:\VS2015Opencv\vs2015\project\picture\04.png");

    //设定ROI区域
    Mat ROI = src(Rect(20, 25, logo.cols, logo.rows));//注意这边Rect函数,先列后行(长*高(宽))
    imshow("ROI", ROI);

    addWeighted(ROI, 1, logo, 0.1, 0., ROI, -1);//两张图片必须大小相同
    imshow("src", src);

    waitKey(0);
    return 0;

}

此结果与前面博文中ROI结果对比一下

可以看出使用线性混合的处理来对两幅图像(f0(x)和f1(x))或两段视频(同样为(f0(x)和f1(x))产生时间上的画面叠化(cross-dissolve)效果,就像幻灯片放映和电影制作中的那样,即在幻灯片翻页时设置的前后页缓慢过渡叠加效果,以及电影情节过渡时经常出现的画面叠加效果。

原文地址:https://www.cnblogs.com/fcfc940503/p/11272458.html