OpenCV 初级图像混合

这篇博客记录了作者根据浅墨大神的文章学习OpenCV的过程,特别是关于图像载入、显示和输出的内容。文章中提到,作者对原始代码进行了注释和个人风格的调整,并鼓励读者自行实践。虽然代码简单,但需要读者自行配置OpenCV环境并准备图片。作者还分享了最终效果图,展示了在图像上添加LOGO的成果。
摘要由CSDN通过智能技术生成

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

本篇对应的大神博客篇目为:【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就是我们刚刚用代码加上去的):





  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值