2

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

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

coords.release()如果不再需要,是否需要在方法结束时从内存中清除?

这是必须做的吗?谢谢

4

1 回答 1

5

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

更新:

(回应评论)

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

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

if(coords.empty())
{
   cout<<"Matrix Not Allocated";
   return 0;
}
于 2013-03-20T04:55:08.873 回答