在 OpenCV 中,我得到一個影像并裁剪出一些 ROI(使用mat.submat(...))。我想避免克隆 submats 以節省時間和記憶體,但我擔心影像可能會在 rois 之前發布。鑒于submat回傳 aMat使用原始Mat作為其后備存盤,我的問題是:子墊子在其父墊子被釋放后會發生什么?之后使用 submats 是否安全?
這是解釋問題的代碼:
// Some big image that I get from somewhere
Mat image = Mat.zeros(1080, 1920, CvType.CV_8UC3);
Mat roi = image.submat(10, 20, 10, 20);
image.release();
// Still safe to use roi?
Mat blurredRoi = new Mat();
Imgproc.blur(roi, blurredRoi, new Size(5, 5));
uj5u.com熱心網友回復:
OpenCV 使用參考計數。
submat 添加了對資料存盤器的另一個參考。
.release() 不會釋放記憶體,除非最后一個參考被洗掉/減少。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/368544.html
上一篇:如何在每個藍色物件周圍繪制矩形?
