C++ Mat::推回(x)复制x元素吗?
根据我的理解,OpenCV的Mat可以有效地处理内存管理;因此,复制垫子并不意味着它们是硬拷贝/物理拷贝的;它们只是指原始的垫子 但是,对于使用push_back将垫子推入较大垫子的垫子,如果它们是硬拷贝的,而不是使用与x=y中相同的拷贝技术,则清除它们是否安全 在下面的代码中,即使在发布了x的内容后,bigx是否仍然有x的内容C++ Mat::推回(x)复制x元素吗?,c++,opencv,vector,mat,C++,Opencv,Vector,Mat,根据我的理解,OpenCV的Mat可以有效地处理内存管理;因此,复制垫子并不意味着它们是硬拷贝/物理拷贝的;它们只是指原始的垫子 但是,对于使用push_back将垫子推入较大垫子的垫子,如果它们是硬拷贝的,而不是使用与x=y中相同的拷贝技术,则清除它们是否安全 在下面的代码中,即使在发布了x的内容后,bigx是否仍然有x的内容 Mat x, bigx; bigx.push_back(x); x.release(); 谢谢:据我所知,Mat::pushback将在每个pushback上创建源代
Mat x, bigx;
bigx.push_back(x);
x.release();
谢谢:据我所知,Mat::pushback将在每个pushback上创建源代码的单独副本。所以你可以在推后释放你的源代码 参见下面的示例
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();
据我所知,Mat::pushback将在每个pushback上创建源代码的单独副本。所以你可以在推后释放你的源代码 参见下面的示例
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调用复制构造函数创建相同类型的新克隆元素,保留原始源。是,push_back调用复制构造函数创建相同类型的新克隆元素,保留原始源