在Mat矩阵类的成员函数中copyTo(roi , mask)函数是非常有用的一个函数,尤其是后面的mask可以实现蒙版的功能,我们用几个实例来说明它的作用。我们要注意mask的数据类型,必须是CV_8U,且通道数或者是1,或者与roi一致

首先我们令mask为尺寸与roi一致的1矩阵:

int main()
{
Mat img1=imread("D:/CodeWork/MyImage/baboon.jpg",);
Mat img2=imread("D:/CodeWork/MyImage/linux.jpg",);
imshow("initial img1",img1); Mat roi=img1(Rect(,,img2.cols,img2.rows));
//分别令像素值为1、0,以及令mask=img2.clone();观察输出结果

    Mat mask(roi.rows,roi.cols,roi.depth(),Scalar());

    img2.copyTo(roi,mask); 
imshow("logan img2",img2);
imshow("after mask img1",img1);
waitKey();
return ;
}

运行结果如下:

接下来,我们令mask=0,观察输出结果如下,很明显mask为0的区域并没有被替换成img2图像:

再接下来,我们将mask直接等于img2图像,看看会怎么样?在mask中,非0区域的图像被保留下来,而像素值为0的区域则保持不变。

最新文章

  1. Android自定义控件5--轮播图广告ViewPager基本实现
  2. 解决Spine骨骼混合动画错乱问题
  3. C++引用详解
  4. 配置ASP.NET Web应用程序, 使之运行在medium trust
  5. 【BZOJ】2563: 阿狸和桃子的游戏
  6. Unity3d三大光照渲染介绍
  7. Codeforces Round #372 (Div. 2) C
  8. 学习笔记:iPhone终极指南、手机端、浏览器各种规范
  9. 踩刹车——regularization
  10. Spring 的两个配置容器的讲解
  11. highcharts图表
  12. intent.getAction()
  13. java用正则表达式获取domain
  14. canvas-弧形可拖动进度条
  15. Leetcode#1.Two Sum(两数之和)
  16. 6 关于plsql中文显示乱码问题
  17. Python3 tkinter基础 Label pack 设置控件在窗体中的位置
  18. Java调用HTTPS接口的证书配置
  19. 【Java】 大话数据结构(9) 树(二叉树、线索二叉树)
  20. Android系统机制解析-公共服务

热门文章

  1. [易学易懂系列|rustlang语言|零基础|快速入门|(14)|Impls & Traits实现与特征]
  2. Observer-Proxy拦截器 -ES6
  3. 基于idea的maven(一)Maven的安装
  4. 手机端自适应缩放显示 js
  5. 面向对象之封装 及@property装饰器使用
  6. 解决You may use special comments to disable some warnings.
  7. 【leetcode】1232. Check If It Is a Straight Line
  8. [大数据] hadoop高可用(HA)部署(未完)
  9. ERROR: An HTTP request took too long to complete. Retry with --verbose to obtain debug information.
  10. TTTTTTTTTTTTTTTTT CF #182 div1 B floyd