// 利用addWeighted指定区域图像线性混合.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
//【1】读取图像
Mat srcImage4 = imread("dota_pa.jpg", 1);
Mat logoImage = imread("dota_logo.jpg");
if (!srcImage4.data) { printf("读取srcImage4错误~! \n"); return false; }
if (!logoImage.data) { printf("读取logoImage错误~! \n"); return false; }
//【2】定义一个Mat类型并给其设定ROI区域
Mat imageROI;
//方法一
imageROI = srcImage4(Rect(200, 250, logoImage.cols, logoImage.rows));
//方法二
//imageROI= srcImage4(Range(250,250+logoImage.rows),Range(200,200+logoImage.cols));
//【3】将logo加到原图上
addWeighted(imageROI, 0.5, logoImage, 0.3,150.0, imageROI); //常数150会影响logo的透明度
//【4】显示结果
imshow("<4>区域线性图像混合示例窗口", srcImage4);
waitKey(0);
return 0;
}
#include "stdafx.h"
#include<opencv2/opencv.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
//【1】读取图像
Mat srcImage4 = imread("dota_pa.jpg", 1);
Mat logoImage = imread("dota_logo.jpg");
if (!srcImage4.data) { printf("读取srcImage4错误~! \n"); return false; }
if (!logoImage.data) { printf("读取logoImage错误~! \n"); return false; }
//【2】定义一个Mat类型并给其设定ROI区域
Mat imageROI;
//方法一
imageROI = srcImage4(Rect(200, 250, logoImage.cols, logoImage.rows));
//方法二
//imageROI= srcImage4(Range(250,250+logoImage.rows),Range(200,200+logoImage.cols));
//【3】将logo加到原图上
addWeighted(imageROI, 0.5, logoImage, 0.3,150.0, imageROI); //常数150会影响logo的透明度
//【4】显示结果
imshow("<4>区域线性图像混合示例窗口", srcImage4);
waitKey(0);
return 0;
}