OpenCV中Mat操作clone() 与copyto()的区别

来源:互联网 发布:软件著作权 翻译 编辑:程序博客网 时间:2024/06/05 16:03

// Mat is basically a class with two data parts: the matrix header and   //a pointer to the matrix containing the pixel values     #include <iostream>  #include <highgui.h>    using namespace std ;  using namespace cv ;    int main()  {      Mat image = imread("1.png" , 0) ;            //Mat image1(image) ;//仅是创建了Mat的头部分,image1与image共享数据区      //Mat image1 = image ;//仅是创建了Mat的头部分,image1与image共享数据区      //Mat image1 = image.clone() ;//完全拷贝,把image中的所有信息拷贝到image1中      Mat image1 ;      image.copyTo(image1) ;//拷贝image的数据区到image1中,在拷贝数据前会有一步:image1.create(this->size , this->type)      for(int h = 0 ; h < image1.rows ; ++ h)      {          uchar* ptr = image1.ptr(h) ;          for(int w = 0 ; w < image1.cols ; ++ w)          {              ptr[w] = 0 ;          }      }      imshow("image" , image) ;      imshow("image1" , image1) ;      waitKey() ;      return 0 ;  }  


转自:http://blog.csdn.net/corcplusplusorjava/article/details/24641011

0 0
原创粉丝点击