随笔 - 7  文章 - 0  评论 - 0  阅读 - 1076

图像叠加

图像叠加操作(copyTo的使用方法)

1.代码部分

#include<iostream>
#include"opencv2/opencv.hpp"
using namespace std;
using namespace cv;
int main(int argc, char* argv[]) {
string path0 = "lena.png";
string path1 = "logo.png";
Mat src = imread(path0);
Mat dst = imread(path1);
cout << src.size() << endl;
cout << dst.size() << endl;
imshow("input_src1", src);
imshow("input_src2", dst);
Mat imageROI = src(Rect(0, 0, dst.cols, dst.rows));//在src中创建一个矩形区域
//注意dst.cols, dst.rows的大小不能超过src大小
Mat mask = imread(path1, 0);
imshow("grayout_put", imageROI);
dst.copyTo(imageROI, mask);
imshow("out_put", imageROI);
waitKey(0);
return 0;
}

2.函数介绍

  1. Rect(int x, int y, int cols, int rows) 画一个矩形区域,矩形的左上角坐标为(x,y),型长宽分别为cols和rows。

  2. copyTo()函数有两种表示方法。

    (1)In_put.copyTo(out_put)。就是把In_put复制(copy to)到out_put。

    (2)In_put.copyTo(out_put,mask)。则是不仅把In_put这张图复制(copy to)到out_put上,且In_put对应mask中像素值为0的像素点都不会贴到out_put上。

3.效果展示



posted on   钱了个钱  阅读(90)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示