相关代码:
#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)效果,就像幻灯片放映和电影制作中的那样,即在幻灯片翻页时设置的前后页缓慢过渡叠加效果,以及电影情节过渡时经常出现的画面叠加效果。