OpenCV的Mat变量之间拷贝分浅拷贝和深拷贝(由于3.0以后对IplImage变量不再使用,所以这里仅考虑Mat变量)

一. 浅拷贝

Mat a;
Mat b = a; //a "copy" to b
Mat c(a); //a "copy" to c

注意:浅拷贝不复制数据只创建矩阵头,实现数据共享,更改a, b, c三个变量中的任意一个都会对另外2个产生同样的作用。

二. 深拷贝

Mat a, b, c, d;
a.copyTo(b); // a copy to b
c = a.clone(); // a copy to c
a.convertTo(d, a.type()); // a copy to d

注意:深拷贝是完全拷贝,拷贝完成后得到一个独立的变更,数据自治,更改a, b, c, d四个变量中的任意一个都不会影响其它变量。

三. ROI

1. 浅拷贝

Mat  B = A(Range::all(), Range(1, 3));
Mat  B = A(Rect(0,0,100,100));

A和B共享内存,B只获得了A中ROI区域的位置信息,如下图(懒得画图了,从网上找了张图,变量不对应,请领会精神!)

2. 深拷贝

opencv中给出的例子是

Rect r(1, 1, 10, 20); // 指定src 的 ROI子图像区域Mat dstroi =dst(Rect(0,10,r.width,r.height)); // 拿到 dst指定区域子图像的引用src(r).convertTo(dstroi, dstroi.type(), 1,0); // ROI子图像之间的复制

此时,无需指定图像的ROI,计算与方便,清晰

另外,还可以用mask来拷贝,这里只给出一种方法,还会有不同的方法

 main()
{Mat matSrc = imread("e:/template/lena.jpg");Mat matDst;Mat matMask(matSrc.size(),CV_8UC1,Scalar(0));Rect rect(0, 0, 100, 100);//绘制maskrectangle(matMask,rect,Scalar(255),-1);//带有mask的copytomatSrc.copyTo(matDst,matMask);waitKey();return 0;}

OpenCV拷贝与ROI相关推荐

  1. Opencv中的ROI介绍

    Opencv中的ROI介绍 (2013-03-27 13:36:26) 转载▼   分类: 模式识别         ROI(Region of Interest)是指图像中的一个矩形区域,可能你后续 ...

  2. opencv 手选roi区域_【OpenCV】选择ROI区域

    问题描述:在测试目标跟踪算法时,需要选择不同区域作为目标,进行目标跟踪,测试目标跟踪的效果. 解决思路: 1.OpenCV中提供了鼠标交互控制,利用setMouseCallback()给固定的窗口设置 ...

  3. OpenCV+python:ROI与泛洪填充

    1,ROI 感兴趣区(Region of Interest,ROI) 是图像的一部分,它通过在图像上选择或使用诸如设定阈值(thresholding) 或者从其他文件(如矢量> 转换获得等方法生 ...

  4. OpenCV之图像ROI与ROI操作

    python代码: import cv2 as cv import numpy as npsrc = cv.imread("./test.png") cv.namedWindow( ...

  5. opencv中什么事ROI。ROI有什么作用

    ROI(region of interest),也就是感兴趣区域,如果你设置了图像了ROI,那么在使用OpenCV的函数的时候,会只对ROI区域操作,其他区域忽略.举个例子: 原图: 现在要将这幅图的 ...

  6. OpenCV 提取不规则ROI区域

    目录 什么是ROI 提取ROI区域 方法一: 方法二: 实际应用演示 原文出处: https://mp.weixin.qq.com/s/MiHz2zLBif_s1lksQXLBbw 微信公众号:Ope ...

  7. 【opencv学习】ROI区域和图像填充

    一:ROI ROI就是region of interest,感兴趣的区域,有时候需要去看看某个特定的区域 #!/usr/bin/python # -*- coding: <encoding na ...

  8. 转载:【OpenCV入门教程之四】 ROI区域图像叠加初级图像混合 全剖析

    [OpenCV入门教程之四] ROI区域图像叠加&初级图像混合 全剖析 浅墨_毛星云 2014-03-10 12:48:05 157425 收藏 19 最后发布:2014-03-10 12:4 ...

  9. 【opencv学习笔记】第五篇:访问图像中像素的三种方式、ROI区域图像叠加和图像混合

    1. 访问图像中像素的三种方式 任何图像处理算法,都是从操作每个像素开始的.在OpenCV中,提供了三种访问每个像素的方法. 方法1:指针访问:C操作符[] 方法2:迭代器iterator 方法3:动 ...

最新文章

  1. spring jpa @Query中使用in
  2. 2020年10个诱人的技术里程碑
  3. IOS 学习笔记 2015-03-20 O之 nil,Nil,NULL,NSNull
  4. 数据结构和算法设计专题之---判断单链表中是否有环,环的长度,环的入口节点...
  5. capitalism 2 3892303_2021年2月5日财神方位查询,今天哪个方位财运好
  6. 如何用Markdown轻松排版知乎专栏文章?
  7. 下滑加载更多js_vue.js怎么实现滑动到底部加载更多数据效果?
  8. POJ1887 DP水题儿
  9. Introduction to the Linux Kernel
  10. [转载] python numpy矩阵运算加速器 NumExpr
  11. TensorFlow实现去噪自编码器(Denoising Autoencoder)
  12. java容量_java中常用集合类的容量
  13. 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic
  14. C/C++[算法入门]续
  15. 在ubuntu下安装Dynamips
  16. 装系统时出现获取硬盘分区失败 可能缺少硬盘驱动怎么办
  17. ASDL、以太网、光钎的关系与区别
  18. 这位日本网友和谷歌街景的故事,感动了58万人
  19. 工程地质计算机应用百度云,工程地质计算机应用
  20. 编程参考- 重名符号的链接问题

热门文章

  1. 戴尔g7 linux,颜值高性能强大 戴尔G7游戏本评测详解
  2. 笑话大全API 实战项目 开心一笑app
  3. GPU在高性能仿真计算中的应用
  4. Unity中TextMeshPro显示中文
  5. Python批量处理Excel办公自动化
  6. 【游戏行业观察】篇1:成龙与《传奇》:传统网游营销模式的变迁
  7. seowhy论坛 seo技术 seo搜索引擎排名 seo交流学习 网站快速收录操作方法
  8. mysql 导入unl文件_informix数据库及数据导入导出
  9. 波兰计算机专业大学排名,波兰留学大学排名
  10. CentOS7.0如何查看MAC地址