函数原型

Mat clone() const;

void copyTo( OutputArray m ) const;

void copyTo( OutputArray m, InputArray mask) const;

copyTo()有重载,

对于你说的imge.clone()和imge.copyTo(result)这种情况,源码解释如下

inline Mat Mat::clone() const

{

Mat m;

copyTo(m);

return m;

}

相信一看就能知道了,呵呵,所以clone()和 copyTo()区别就在copyTo()的第二个实现吧,带掩码的那个。

图像用Mat来表示。图像的复制方法比较多,例如

src.clone()

src.copyTo(dst)

src.copyTo(dst, mask)

dst与src类型相同时,直接创建并复制图像数据(深copy),

src.convertTo(dst, type, scale, shift)

当src.depth==dst.depth且noscale时,等同于copyTo(创建并复制);其他,转换并复制数据

这样,复制一个图像的ROI到另外一个图像的指定区域就简单多了。

如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,计算也比较方便,清晰。

opencv矩阵赋值函数copyTo、clone、重载元算赋‘=’之间实现的功能相似均是给不同的矩阵赋值功能。

copyTo和clone函数基本相同,被赋值的矩阵和赋值矩阵之间空间独立,不共享同一空间。

但是重载元算赋‘=’,被赋值的矩阵和赋值矩阵之间空间共享,改变任一个矩阵的值,会同时影响到另一个矩阵。当矩阵作为函数的返回值时其功能和重载元算赋‘=’相同,赋值运算赋会给矩阵空间增加一次计数,所以函数变量返回后函数内部申请的变量空间并不会被撤销,在主函数中仍可以正常使用传递后的参数。具体的过程见下面的测试程序。

opencv之图像mat复制copyTo,clone=相关推荐

  1. OpenCV中图像Mat,二维指针和CxImage类之间的转换

    在做图像处理中,常用的函数接口有Opencv中的Mat图像类,有时候需要直接用二维指针开辟内存直接存储图像数据,有时候需要用到CxImage类存储图像.本文主要是总结下这三类存储方式之间的图像数据的转 ...

  2. OpenCV中图像Mat存储格式和MATLAB中图像Mat存储格式的区别

    首先,看一下图像中的宽高与笛卡尔坐标系之间的关系如下图所示,即x与width(cols)对应,y与height(rows)对应,x是按列来进行变化,y按行变化. OpenCV读入图像以Mat形式存储时 ...

  3. 独家|OpenCV 1.1 Mat - 基本图像容器(附链接)

    翻译:陈之炎 校对:吴振东.林夕本文约3600字,建议阅读10分钟本文为大家系统地介绍了OpenCV官方教程. 写在前边 让读者朋友们较为系统地了解和学习OpenCV官方教程,数据派THU翻译组联合研 ...

  4. python的opencv的图像对象存储的颜色通道_OpenCV大型阵列类型Mat类

    一.Mat类 Mat类是C++实现的OpenCV库的核心,表示一个N维度单通或多通道阵列,可以用来存储实数或复数值向量和数组,灰度或彩色图像,向量场,张量及直方图(当然高纬度的直方图存储在稀疏Mat类 ...

  5. opencv mat用数组初始化_10、OpenCV中图像和Mat类型(一)

    Mat类型可以被认为是OpenCV库的核心. OpenCV库中绝大多数的函数都是Mat类的成员,以Mat作为参数,或者Mat作为返回值. Mat类用于表示任意维数的密集数组.即使对于数组中的该条目为零 ...

  6. OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式...

    OpenCV中图像以Mat类型保存时各通道数据在内存中的组织形式及python代码访问各通道数据的简要方式 以最简单的4 x 5三通道图像为例,其在内存中Mat类型的数据组织形式如下: 每一行的每一列 ...

  7. 【OpenCV 例程200篇】08. 图像的复制(np.copy)

    [OpenCV 例程200篇]08. 图像的复制(np.copy) 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 使 ...

  8. OpenCV3学习(2.2)——图像Mat矩阵操作与常用函数

    三.大型数组类 OpenCV3对大型数据的存储,具有代表性的是 cv::Mat和cv::SparseMat 类型. cv::Mat针对的是密集连续性的存储,大多数的图像数据被存储为这种类,即使数据为空 ...

  9. 图像识别——(java)opencv(处理图像各种算法测试)

    https://note.youdao.com/ynoteshare/index.html?id=e0df335c7bba4d7633874375539c228a&type=note& ...

最新文章

  1. 成为优秀UI设计师需要具备哪些条件?
  2. angular.element()的用法
  3. python 二叉树中所有距离为k的节点_leetcode 二叉树中所有距离为 K 的结点
  4. python闭环最短路径_python实现最短路径的实例方法
  5. 5ic计算机考试考卷读取错误,最新计算机一级试题第五套
  6. VSTS : 在性能调优中找到瓶颈所在
  7. Angular 依赖注入的学习笔记
  8. C++头插法尾插法建立单链表,合并两个有序单链表
  9. Linux管理文件和目录
  10. MySql 一条更新语句是如何执行的? MySql杂谈、MySql WAL 技术
  11. 全面剖析泛微协同管理平台(e-cology)十大亮点
  12. 确定有限自动机DFA非确定有限自动机NFA
  13. 债券久期为什么难理解
  14. java中一元加号和减号是什么_一元运算符
  15. 在不损坏硬盘数据情况下,MBR格式转GPT格式,手动创建EFI和MSR分区,安装WIN10/WIN8.1...
  16. 船舶物资与市场杂志船舶物资与市场杂志社船舶物资与市场编辑部2022年第7期目录
  17. TriSun PDF to X中文版批量pdf转换功能
  18. Web浏览过程中涉及到的协议
  19. 录音文件下载_录音转文字app有哪些?录音转文字助手怎么样?
  20. Win32如何定义IP数据报的首部

热门文章

  1. 内存基础知识汇总指南
  2. 顺序查找法岗哨问题!
  3. 聚焦数据智能,袋鼠云亮相2018云栖大会
  4. c语言实验,c语言实验报告
  5. 单路和多通道内存模式
  6. 下拉形式的可多选的输入框
  7. 【Tools】UltraISO官网最新板+注册码
  8. ElasticSearch 查询 matchAll使用方法
  9. USB2.0如何区分low speed、full speed 和high speed
  10. 线程撕裂者安装linux,Linux之父新电脑:15年第一次抛弃Intel、咬牙上AMD 32核心