int main()
{
Mat image = imread("../123.jpg", 1);
Mat logo = imread("../cmix8_s.bmp",1);
Mat imageROI = image(Rect(0, 0, logo.cols,logo.rows)); //定义感兴趣区域
logo.copyTo(imageROI); //将logo复制到image的imageROI中定义位置 //操作1
namedWindow("image");
imshow("image", image);
waitKey(0);
logo.copyTo(imageROI,mask); // 插入标志,只复制掩码不为0的位置 //操作2
namedWindow("image1");
imshow("image1", image);
waitKey(0);
return 0;
{
Mat image = imread("../123.jpg", 1);
Mat logo = imread("../cmix8_s.bmp",1);
Mat imageROI = image(Rect(0, 0, logo.cols,logo.rows)); //定义感兴趣区域
logo.copyTo(imageROI); //将logo复制到image的imageROI中定义位置 //操作1
namedWindow("image");
imshow("image", image);
waitKey(0);
Mat image1 = imread("../123.jpg", 0);
Mat logo1 = imread("../cmix8_s.bmp",0);
Mat imageROI = image(Rect(0, 0, logo.cols,logo.rows)); //定义感兴趣区域
logo.copyTo(imageROI,mask); // 插入标志,只复制掩码不为0的位置 //操作2
namedWindow("image1");
imshow("image1", image);
waitKey(0);
return 0;
}
====》假设imread时读入为灰色图片,在操作1的基础上,直接mask(logo),发现结果不会发生变化。
因为执行操作1之后,image的图片已经发生变化;此时操作2掩码为0的部分在操作1中已经填充为logo原图形对应data,所以看起来没有发生变化。