opencv学习之路(5):图像中添加图标 copyTo、addWeighted

1、加载感兴趣区域ROI,添加Rect区域

2、加载掩模,mask,前提是灰度图

/*图像添加图标
*1、ROI和它的父图像指向同一块内存缓冲区
*2、加载掩模(必须是灰度图)
*3、对ROI的任何变换都会影响到原始图像的对应区域。
*/
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;

int main()
{
    cv::Mat image = cv::imread("E:/QtMaterial/images/boldt.jpg");
    cv::Mat logo  = cv::imread("E:/QtMaterial/images/logo.bmp");
    cv::Mat imageROI;

    imageROI =image(cv::Rect(385,270,logo.cols,logo.rows));
    cv::addWeighted(imageROI,1.0,logo,0.3,0,imageROI);
    cv::imshow("with logo1",image);

    imageROI =image(cv::Rect(385,270,logo.cols,logo.rows));
    cv::Mat mask = cv::imread("E:/QtMaterial/images/logo.bmp",0);
    logo.copyTo(imageROI,mask);
    cv::imshow("with logo2",image);

    cv::waitKey();
    cv::destroyWindow("with logo1");
    cv::destroyWindow("with logo2");
    return 0;
}
原文地址:https://www.cnblogs.com/Jason-AnHui/p/3464201.html