OpenCV中像Mat这样的结构的内存分配

时间:2014-03-18 18:48:33

标签: c++ opencv memory memory-management mat

我理解Mat a = b只是将b的引用复制到a,没有分配单独的内存。

但是在下面的代码中:

VideoCapture cap(0);
Mat frame;

for(i = 0; i<10; i++)
    cap.read(frame);

在每次迭代中,Mat变量都会更新。这是否意味着在每个循环中分配新内存。如果是这样,之前分配的内存会发生什么?它被摧毁了吗?在10次迭代结束时,系统中使用的内存是否等于10 * sizeof(Mat),或者是每次更新A时分配给Mat帧的内存是否被覆盖?

1 个答案:

答案 0 :(得分:2)

在这种情况下,VideoCapture会更新frame,并且不会创建Mat的新副本。每次迭代都会覆盖Mat