c++ opencv添加logo_c++调用opencv实现图片叠加以及添加水印效果

本文通过C++和OpenCV库展示了如何将图片叠加以及添加透明水印。介绍了两个方法:`mix1`和`mix2`用于图片叠加,以及`MakeWatermark`函数用于添加水印,其中`MakeWatermark`支持调整水印的透明度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

本篇文章参考了以下文章:

素材

demo例子起码用到了几个素材,在这里下载:

logo_pc.png

60a9b1016e4680ac8085f06eb86bd95b.png

005.jpg

转存失败

underlay.png

5d1dd36bbe3ac748af3247ed4199195f.png

overlay.png

转存失败

test.png

f41878e5dbe5a3aa454ae7280c5449c7.png

代码

头文件:

#ifndef DEMO_IMAGEMIX_H

#define DEMO_IMAGEMIX_H

#include 

#include "opencv2/opencv.hpp"

#include "opencv2/core.hpp"

#include "opencv2/highgui.hpp"

#include "opencv2/imgcodecs.hpp"

#include 

#include 

#include 

using namespace cv;

using namespace std;

class Demo_ImageMix

{

public:

Demo_ImageMix();

void mix1(std::string orgImg, std::string logoPic,double alphaValue);

void mix2(std::string orgImg, std::string logoPic,double alphaValue);

int MakeWatermarkTest(

std::string underlayPic,

std::string overlayPic,

std::string testPic);

int MakeWatermark(

std::string underlayPic,

std::string overlayPic

,double alphaValue

);

private:

void overlayImage(Mat* src, Mat* overlay, const Point& location);

};

#endif // DEMO_IMAGEMIX_H

cpp源文件:

#include "demo_imagemix.h"

/***

* 该class用于演示

* 1、两张图片叠加包含 透明 效果

* 2、底图上面添加png图片水印【水印背景透明】

**/

Demo_ImageMix::Demo_ImageMix()

{

}

/**

任意图片叠加

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值