copyTo和clone的区别

Posted 两猿社长

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了copyTo和clone的区别相关的知识,希望对你有一定的参考价值。

OpenCV中mat::copyto( )函数使用方法

  使用OpenCV库进行图像处理时,经常会用到clone和copyTo函数,这里对两个函数进行介绍。

  • copyTo函数

  实现和clone一样的功能,但一般多用于掩模贴图

1 Mat src = imread(imagepath); 
2 Mat src_temp;
3 src.copyTo(src_temp);

  另外用途最广的是它的贴图功能:

1 src.copyTo(src_temp, mask);

  其中mask为一个二值的掩模图像,如果如果在某个像素点(i, j)其值为1,则把src中对应位置的像素复制到src_temp中,其余为0的位置像素保持不变。

  • clone函数

  分析源码可以看出,该函数的实现是copyTo的第一种用法:

1 inline Mat Mat::clone() const
2 {
3    Mat m;
4     copyTo(m);
5     return m; 
6 }

  多用于复制图片,比如读入一张图像,对其进行处理时,只是想看下效果并不像让原图发生变化,这时候可以重新声明如下:

1 Mat src = imread(imagepath);
2 Mat src_temp = src.clone();

 

以上是关于copyTo和clone的区别的主要内容,如果未能解决你的问题,请参考以下文章

opencv4opencv教程 C++ 4Mat对象(深拷贝:clone()copyTo(),create()创建图片,zeros()eye()初始化空白图像,Scalar()创建向量)

C# 面试题及答案31-60

Git教程 git pull 和 git clone的区别

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

GitGit 分支管理 ( 克隆远程分支 | 克隆 master 分支 git clone | 查看远程分支 git branch -a | 克隆远程分支 git checkout -b )(代码片段

git clone和fork的区别