cv::Mat.release()

Bry*_*yan 2 c++ opencv

我开始在我的图像处理程序中使用 OpenCV。当我cv::Mat在内存上的一个方法中使用和分配时:

cv::Mat coords(100, 5, CV_32FC1);
Run Code Online (Sandbox Code Playgroud)

我需要做coords.release()从在方法结束的内存清楚,如果我不再需要什么?

有这个必要吗?谢谢

sga*_*zvi 5

您不需要显式释放cv::Mat对象。cv::Mat一旦对象超出其声明的范围,它就会自动被释放(即它的析构函数将被调用)。

更新:

(回应评论)

要检查是否cv::Mat已成功分配,您可以执行以下操作:

cv::Mat coords(100, 5, CV_32FC1); 

if(coords.empty())
{
   cout<<"Matrix Not Allocated";
   return 0;
}
Run Code Online (Sandbox Code Playgroud)