我开始在我的图像处理程序中使用 OpenCV。当我cv::Mat在内存上的一个方法中使用和分配时:
cv::Mat coords(100, 5, CV_32FC1);
Run Code Online (Sandbox Code Playgroud)
我需要做coords.release()从在方法结束的内存清楚,如果我不再需要什么?
有这个必要吗?谢谢
您不需要显式释放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)