OpenCV2 图像叠加 给照片加水印

**C++:**voidMat::copyTo(OutputArray **m**)const
**C++:**voidMat::copyTo(OutputArray **m**, InputArray **mask**)const
这个函数可以复制图像到另一个图像或矩阵上,可选参数是掩码
由于叠加的图像大小不一定相等,比如我们这里把一张小照片加到一张大照片上
我们可以在大照片上设置一个和小照片一样大的感兴趣区域
不使用掩码的时候,我们载入一张png,和一张jpg
#include <opencv2/highgui/highgui.hpp>#include <opencv2/core/core.hpp>int main(){    cv::Mat image = cv::imread("E:/Image/Fruits.jpg");    cv::Mat logo = cv::imread("E:/logo.png");    cv::Mat imageROI;    imageROI = image(cv::Rect(10,10,logo.cols,logo.rows));    logo.copyTo(imageROI);    cv::namedWindow("result");    cv::imshow("result",image);    cv::waitKey();    return 0;}

OpenCV2 图像叠加 给照片加水印

原先在png里面是透明的地方,现在成了黑色,可见原来是透明的地方被认为是值0。
我们使用掩码来看看效果,掩码就使用png图片,掩码只能是一个通道的,我们载入灰度图像作为掩码
#include <opencv2/highgui/highgui.hpp>#include <opencv2/core/core.hpp>int main(){    cv::Mat image = cv::imread("E:/Image/Fruits.jpg");    cv::Mat logo = cv::imread("E:/logo.png");    cv::Mat mask = cv::imread("E:/logo.png",0);    cv::Mat imageROI;    imageROI = image(cv::Rect(10,10,logo.cols,logo.rows));    logo.copyTo(imageROI,mask);    cv::namedWindow("result");    cv::imshow("result",image);    cv::waitKey();    return 0;}

OpenCV2 图像叠加 给照片加水印

这样能看出差别了吧。
再来看看另一个函数
**C++:**voidaddWeighted(InputArray **src1**, double **alpha**, InputArray **src2**, double **beta**, double **gamma**, OutputArray **dst**, int **dtype**=-1)
转换成数学表达式就是

OpenCV2 图像叠加 给照片加水印

#include <opencv2/highgui/highgui.hpp>#include <opencv2/core/core.hpp>int main(){    cv::Mat image = cv::imread("E:/Image/Fruits.jpg");    cv::Mat logo = cv::imread("E:/logo.png");    cv::Mat imageROI;    imageROI = image(cv::Rect(10,10,logo.cols,logo.rows));    cv::addWeighted(imageROI, 1.0, logo, 0.3, 0, imageROI);    cv::namedWindow("result");    cv::imshow("result",image);    cv::waitKey();    return 0;}

OpenCV2 图像叠加 给照片加水印

原文链接: https://www.cnblogs.com/xianglan/archive/2011/07/30/2122186.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/29570

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 上午7:02
下一篇 2023年2月8日 上午7:03

相关推荐