一、先看效果图:
方法一是直接叠加,方法二利用图像掩膜叠加。
二、代码:
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
bool ROI_AddImage1(); //利用感兴趣区域直接叠加图像
bool ROI_AddImage2(); //利用感兴趣区域和图像掩膜(mask)叠加图像
int main()
{
//=====利用方法1混合图像
bool result1 = ROI_AddImage1();
if (result1)
{
std::cout << "1图像混合成功1" << std::endl;
}
//=====利用方法2混合图像
bool result2 = ROI_AddImage2();
if (result2)
{
std::cout << "2图像混合成功2" << std::endl;
}
waitKey(0);
return 0;
}
//=======ROI_AddImage1()函数
//利用感兴趣区域直接叠加图像
bool ROI_AddImage1()
{
//<1>读入主图片----------------------------------------
Mat src_Image = imread("F:\\TuPian\