这玩意儿在之前遇到过,但是只是简单了解下,现在遇到正版概念了。
ROI
定义方法一
定义方法二
例程
#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/video.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
//1.读入图像
Mat srcImage = imread("erha.jpg");
Mat logoImage = imread("logo.png");
if (!srcImage.data) {
cout << "srcImage error" << endl;
return -1;
}
if (!logoImage.data) {
cout << "logoImage error" << endl;
return -1;
}
//2.定义一个Mat类型并给其设定ROI区域
Mat imageRoi = srcImage(Rect(200, 250, logoImage.cols, logoImage.rows));
//3.加载掩膜,必须是灰度图
Mat mask = imread("logo.png", 0);
//4.将掩膜赋值到ROI
logoImage.copyTo(imageRoi, mask);
//5.显示结果
namedWindow("利用ROI实现图像叠加示例窗口");
imshow("利用ROI实现图像叠加示例窗口", srcImage);
waitKey(0);
return 0;
}
效果
PS:好多东西现在可能不明白,但是后面都会慢慢揭晓了。