2014-03-18 43 views
0

我知道Mat a = b只是將b的引用複製到a中,沒有單獨的內存分配。在OpenCV中Mat結構的內存分配

但在下面的代碼:

VideoCapture cap(0); 
Mat frame; 

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

在每次迭代中,墊變量被更新。那麼這是否意味着每個循環都會分配新的內存。如果是這樣,之前分配的內存會發生什麼?它是否被摧毀?在10次迭代結束時,系統中使用的內存等於10 * sizeof(Mat),還是每次更新A時,分配給Mat框架的內存被覆蓋?

回答

2

在這種情況下,VideoCapture更新了frame並且沒有創建新副本Mat。每次迭代都會覆蓋Mat