zoukankan      html  css  js  c++  java
  • OpenCV中图像融合

         准备2副背景图像,注意图像黑色的部分,是作为mask用的,我们会用灰度图的方式打开它们,这时黑色的部分值为0,则图像融合时候,可以把第二幅图像在黑色的部分显示出来。

    image

    image

    代码非常简单,注意就是图像copyTo函数的使用,把背景图像copy到前景图像时候,掩码部分不会拷贝。

    CImageEffect::CImageEffect()
    {
    backImage = cv::imread("background.png");

    if(!backImage.data)
    QMessageBox::about(NULL, "About Me", "can't open back image!");

    maskImg = cv::imread("background.png",0);

    //注意掩码的部分,要用黑色,这样在图像copy时候,不会copy
    if(!maskImg.data)
    QMessageBox::about(NULL, "About Me", "can't oopen back image mask!");

    logo1Img = cv::imread("2.png");

    //注意掩码的部分,要用黑色,这样在图像copy时候,不会copy
    if(!logo1Img.data)
    QMessageBox::about(NULL, "About Me", "can't oopen logo image mask!");
    logo1maskImg = cv::imread("2.png",0);

    //注意掩码的部分,要用黑色,这样在图像copy时候,不会copy
    if(!logo1maskImg.data)
    QMessageBox::about(NULL, "About Me", "can't oopen logo mask image mask!");


    }

    void CImageEffect::ImageMerge1(cv::Mat& img, cv::Mat& out)
    {
    img.copyTo(out);
    backImage.copyTo(out, maskImg);

    cv::Mat imageROI;
    imageROI = out(cv::Rect(10,10, logo1Img.rows, logo1Img.cols));
    logo1Img.copyTo(imageROI, logo1maskImg);


    }

    下面是程序执行后的界面:

    image

  • 相关阅读:
    一个好用的web甘特图
    应用ExcelPackage导出Excel
    Base64中文不能加密问题
    Sql Server存储过程和函数浅谈
    .NET反编译之Reflector基础示例
    NPOI导出数据到Excel
    twitter接口开发
    Nginx基本属性配置详解
    ssh-keygen创建证书
    asp.net core 设置默认文档index.html
  • 原文地址:https://www.cnblogs.com/mikewolf2002/p/3142951.html
Copyright © 2011-2022 走看看