美文网首页CV
ROI和图像融合

ROI和图像融合

作者: 谢小帅 | 来源:发表于2017-07-11 20:40 被阅读67次

【OpenCV入门教程之四】 ROI区域图像叠加&初级图像混合 全剖析

  • ROI: region of interest 感兴趣区域
  • addWeighted 是常用的图像融合函数
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

using namespace cv; // OpenCV中的C++类和函数都是定义在命名空间cv之内的

int main() {

    // 背景图,logo
    Mat image = imread("../pictures/dota.jpg"); // 默认第2个参数flags=1,(flags>0 返回一个3通道的彩色图像)
    Mat logo = imread("../pictures/logo.jpg");

    // 显示原图像的窗口
    namedWindow("image"); // mac标题栏不能显示中文
    imshow("image", image);

    // ROI: region of interest 感兴趣区域
    Mat imageROI = image(Rect(800, 10, logo.cols, logo.rows)); // 定义image中的ROI区域(区域大小=logo大小)
    // 或者
    // Mat imageROI = image(Range(350, 350 + logo.rows), Range(800, 800 + logo.cols));

    // 图像混合操作
    // computes weighted sum of two arrays (dst = alpha*src1 + beta*src2 + gamma)
    // gamma 可以理解为偏置
    addWeighted(imageROI, 0.5, logo, 0.5, 0, imageROI);

    // 显示融合后图像的窗口
    namedWindow("image+logo");
    imshow("image+logo", image);

    // 输出图像
    imwrite("../pictures/dota+logo.jpg", image);

    waitKey(3000);
}

addWeighted 函数

//! computes weighted sum of two arrays (dst = alpha*src1 + beta*src2 + gamma)
CV_EXPORTS_W void addWeighted(InputArray src1, double alpha, InputArray src2,
                              double beta, double gamma, OutputArray dst, int dtype=-1);

相关文章

网友评论

    本文标题:ROI和图像融合

    本文链接:https://www.haomeiwen.com/subject/yiamhxtx.html