簡體   English   中英

OpenCV Mat中的動態內存重新分配錯誤

[英]dynamic memory deallocation error in OpenCV Mat

我想知道OpenCV Mat默認構造函數是否已經分配了內存? 如文檔所示

>     These are various constructors that form a matrix. As noted in the Automatic Allocation of the Output Data, often the default constructor
> is enough, and the proper matrix will be allocated by an OpenCV
> function.

這是否意味着在程序結束時發生的重新分配是正確的。 那是對的嗎?

實際上,我在程序末尾的內存釋放階段出現了(核心轉儲)錯誤。 我的初始代碼引入了一個OpenCV Mat,即Mat A,而沒有對其進行初始化,這會導致錯誤。 我通過使用初始化即A = Mat :: zeros(...)修復了此錯誤

我想確認我以前的疑問。 如果是真的,那么每次聲明Mat都必須初始化是很不方便的

對不起,我的解釋不好! 如果我不夠清楚,請回復我

這是否意味着在程序結束時發生的重新分配是正確的。 那是對的嗎?

cv::Mat自行分配內存,並在所有共享同一數據的cv::Mat超出范圍時釋放內存(類似於std::shared_ptr )。

我想確認我以前的疑問。 如果是真的,那么每次聲明Mat都必須初始化是很不方便的

不,這是錯誤的。 但是,由於您沒有顯示代碼,所以我只能猜測您沒有正確地鏈接OpenCV到您的項目,因為著名的情況是,未正確鏈接的OpenCV在cv::Mat銷毀階段會導致錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM