图像叠加

图像叠加操作(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 2023-06-13 22:49  钱了个钱  阅读(102)  评论(0)    收藏  举报