OpenCV中Mat等结构的内存分配

Memory allocation for structures like Mat in OpenCV

本文关键字:内存 分配 结构 Mat OpenCV      更新时间:2023-10-16

我理解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帧的内存是否被覆盖?

在本例中,VideoCapture更新了frame,没有创建Mat的新副本。Mat在每次迭代中被覆盖