当两幅图像尺寸相同时,给图像加上水印效果其实很简单,就是简单的将一幅图像加到另一幅图像上(两幅图像乘以一定的系数就可以控制相加的效果):
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat image1 = imread("D:/picture/images/boldt.jpg");
Mat image2 = imread("D:/picture/images/rain.jpg");
waitKey(0);
Mat result;
//调用addWeighted函数
//addWeighted(image1,0.7,image2,0.9,0.,result);
//利用它的重载函数可以简单的写为
result= 0.7*image1+0.9*image2;
namedWindow("output");
imshow("output",result);
waitKey(0);
return 0;
}
当图像的尺寸不同时,需要在较大的图像上定义一个与较小的图像尺寸相同的感兴趣的区域ROI,把较小的图像加到感兴趣区域上:
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat image1 = imread("D:/picture/images/boldt.jpg");
Mat logo = imread("D:/picture/images/logo.bmp");
Mat imageROI = image1(Rect(50,50,logo.cols,logo.rows));
addWeighted(imageROI,1.0,logo,1.0,0.,imageROI);
imshow("结果图像",image1);
waitKey(0);
return 0;
}
这样做有一个明显的问题,就是ROI区域的像素点有可能超过255,导致饱和而显示出白色。怎么办呢?可以通过掩码来完成,使得在感兴趣区域点,只有较小图像的内容,而没有较大图像的内容:
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat image1 = imread("D:/picture/images/boldt.jpg");
Mat logo = imread("D:/picture/images/logo.bmp");
Mat imageROI = image1(Rect(50,50,logo.cols,logo.rows));
Mat mask = imread("D:/picture/images/logo.bmp",0);
logo.copyTo(imageROI,mask);
imshow("结果图像",image1);
waitKey(0);
return 0;
}
分享到:
相关推荐
基础学习笔记(注释)之opencv(12):改变图像对比度和亮度.doc
标题学习opencv第一天: 一、图像基本操作: 1.图像读取:cv.imread(“文件位置:D:/python/picture.png” ) 函数功能:从文件路径中读取图片文件并显示出来,可读取的文件类型有JPG、JPEG、PNG、Webp等 函数原型:...
Opencv学习笔记 辛苦收集希望和大家交流
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 005】 操作像素》 博文链接: http://blog.csdn.net/davebobo/article/details/52541612 OpenCV版本:2.4.9
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 012】估算图像间的投影关系》 博文链接: http://blog.csdn.net/davebobo/article/details/52653595 OpenCV版本:2.4.9
OpenCV学习笔记入门版,真正的入门级别,自己写的
这个一个很基础的opencv学习笔记,一些常会遇到的问题,在这里做了肤浅的介绍,还有很多问题没有提及,以后会陆续整理,并上传
OpenCV 3计算机视觉:Python语言实现 (Joe Minichino)
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 008】基于形态学运算的图像变换》 博文链接: http://blog.csdn.net/davebobo/article/details/52561463 OpenCV版本:2.4.9
基于C++和opencv的数字图像水印系统源代码,可编译运行和学习,含有图像数据。
爱分享、爱极客的编程怪兽--DaveBobo 博文 《【OpenCV学习笔记 009】图像滤波》 博文链接: http://blog.csdn.net/davebobo/article/details/52572728 OpenCV版本:2.4.9
OpenCV-python 学习笔记 OpenCV图像阈值1
OpenCV学习笔记(C++版OpenCV学习笔记,主要包括基础模块和DNN模块)带详细注释源码!!!
OpenCV学习笔记,(基础概念,归纳总结),相信你所选择的。
见文章:http://blog.csdn.net/fred_yang2013/article/details/10175921
OpenCv学习笔记(六):使用opencv画线、矩形、椭圆、多边形线、多边形体等.pdf
OpenCV学习笔记(四)运动物体跟踪的camshift算法
本人在学习贾志刚老师的Opencv图像处理视频教程过程中,记录了一些笔记。在此,将平时学习笔记整理成册,分享给大家。希望能帮助到图像处理领域零基础的同学们,教程中所有程序是基于OpenCV3.1.0和Visual Studio2015...
1. openCV-python 环境搭建: 2. OpenCV 的图像读取显示及保存 1. 导入图像: 2. 显示图像: 3. 保存图像: 3. OpenCV
学习笔记