При использовании openCV cv :: Mat. http://docs.opencv.org/modules/core/doc/basic_structures.html Я понимаю, что используются какие-то умные указатели. мой вопрос в том, чтобы сделать некоторую оптимизацию памяти.
Должен ли я вызвать cv :: Mat release(), чтобы освободить неиспользуемые матрицы?
или я должен доверять компилятору, чтобы сделать это?openCV cv :: mat release
, например, думаю, что этот код:
cv::Mat filterContours = cv::Mat::zeros(bwImg.size(),CV_8UC3);
bwImg.release();
for (int i = 0; i < goodContours.size(); i++)
{
cv::RNG rng(12345);
cv::Scalar color = cv::Scalar(rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255));
cv::drawContours(filterContours,goodContours,i,color,CV_FILLED);
}
/*% Fill any holes in the objects
bwImgLabeled = imfill(bwImgLabeled,'holes');*/
imageData = filterContours;
filterContours.release(); //should I call this line or not ?
, когда матрица выходит за пределы области видимости, она будет отпущена (если нет данных о ссылках этой матрицы) – Micka
@ Мика, что произойдет, если это очень длинная функция, когда вычисление требует времени. это поможет освободить? – Gilad
это даст вам некоторую память назад, которая может или не поможет вам – Micka