资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
OpenCV2 图像叠加 给照片加水印C+:voidMat:copyTo(OutputArraym)constC+:voidMat:copyTo(OutputArraym, InputArraymask)const这个函数可以复制图像到另一个图像或矩阵上,可选参数是掩码由于叠加的图像大小不一定相等,比如我们这里把一张小照片加到一张大照片上我们可以在大照片上设置一个和小照片一样大的感兴趣区域不使用掩码的时候,我们载入一张png,和一张jpg#include #include 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;原先在png里面是透明的地方,现在成了黑色,可见原来是透明的地方被认为是值0。我们使用掩码来看看效果,掩码就使用png图片,掩码只能是一个通道的,我们载入灰度图像作为掩码#include #include 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;这样能看出差别了吧。再来看看另一个函数C+:voidaddWeighted(InputArraysrc1, doublealpha, InputArraysrc2, doublebeta, doublegamma, OutputArraydst, intdtype=-1)转换成数学表达式就是#include #include 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;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号