zoukankan      html  css  js  c++  java
  • OpenCV 初级图像混合

    本文是根据浅墨大神的博客文章加以实践的记录,代码是经过本人自己喜好加注释和改动过的。因为准备跟着他的文章步伐进行学习,在接下来的很多文章都会是这种形式的实践记录,如果希望亲自一睹大神的风采,请猛搓下面链接:点击打开链接

    本篇对应的大神博客篇目为:【OpenCV入门教程之三】 图像的载入,显示和输出 一站式完全解析
    由于代码较为简单,可自行建立工程配置 OpenCV后加入下面的代码自行运行尝试,图片需要自己准备,如果希望得到完整工程,浅墨大神的博客教程中有放出对应工程的下载链接


    包含头文件

    #include <opencv2/core/core.hpp>
    #include <opencv2/highgui/highgui.hpp>
    
    using namespace cv;

    主体代码

    Mat image= imread("dota.jpg");//载入图片,"dota.jpg"为工程目录下的文件
    Mat logo= imread("dota_logo.jpg");
    
    Mat imageROI;// 定义一个Mat类型,用于存放,图像的ROI,即图像的感兴趣区域
    imageROI= image(Rect(800,350,logo.cols,logo.rows));//指定图像的感兴趣区域,imageROI的数据与源图像image共享存储区,所以此后在imageROI上的操作也会作用在源图像image上
    //imageROI= image(Range(350,350+logo.rows),Range(800,800+logo.cols));//亦可这么写
    
    // 将logo加到原图上
    addWeighted(imageROI,0.8,logo,0.2,0,imageROI);//数组相加函数,imageROI为原数组,0.8为该数组权值,logo为另一个原数组,0.2为该数组权重,0为添加常数项,imageROI为输出目标数组,函数输出结果为:imageROI=imageROI*0.8+logo*0.2+0
    
    namedWindow("原画+logo图");//显示结果
    imshow("原画+logo图",image);
    imwrite("我喜欢打dota2 by浅墨.jpg",image);//输出一张jpg图片到工程目录下
    waitKey();//等待用户输入任意键,在win32环境下可防止程序运行后一闪就退出


    效果图(右下方的灰色LOGO就是我们刚刚用代码加上去的):





  • 相关阅读:
    07.28周四
    07.27 约束自己
    07.26
    07.25新的一周,踏实,努力
    07.21 智能充电开发
    07.20小笔记
    07.20 html5的适配flexible
    07.19 Linux命令 cd
    SpringBoot简介和Banner
    webpack生产环境配置
  • 原文地址:https://www.cnblogs.com/weixinhum/p/3916716.html
Copyright © 2011-2022 走看看