Mat::p ush_back(x) 是否复制 x 元素



根据我的拙见,OpenCV的Mat可以有效地处理内存管理;所以复制Mats并不意味着它们是"硬/物理"复制的;它们只是引用了原始的Mat。

但是,对于使用push_back推入较大垫子的垫子,假设它们是硬复制的,而不是使用与x=y相同的复制技术,清除它们是否安全?

在下面的代码中,即使发布了后者,bigx是否仍然具有x的内容?

Mat x, bigx;
bigx.push_back(x);
x.release();

谢谢:)

我所知,Mat::p ushback(( 会在每次回推时创建一个单独的源代码副本。因此,您可以在反推后释放源。

请参阅下面的示例,

   Mat src=imread("src.jpg",1);
   int rowSize=src.rows;
   Mat A;
   A.push_back(src.reshape(0,1));
   src.release();
   Mat B;
   B = A.row(0).clone();
   imshow("src",B.reshape(0,rowSize));
   waitKey(); 

是的,push_back调用复制构造函数来创建相同类型的新克隆元素,由自主选择原始(源(。

相关内容

  • 没有找到相关文章

最新更新