我有一个cv::Mat
,但我已经插入了一些值,如何清除其中的内容?
谢谢
答案 0 :(得分:19)
如果要释放Mat
变量的内存,请使用release()
。
Mat m;
// initialize m or do some processing
m.release();
对于cv::Mat
个对象的向量,您可以使用myvector.clear()
释放整个向量的内存。
std::vector<cv::Mat> myvector;
// initialize myvector ..
myvector.clear(); // to release the memory of the vector
答案 1 :(得分:9)
来自docs:
// sets all or some matrix elements to s
Mat& operator = (const Scalar& s);
然后我们可以做
m =标量(0,0,0);
填充黑色像素。 Scalar有4个组件,最后一个 - alpha - 是可选的。
答案 2 :(得分:6)
你应该调用release()函数。
Mat img = Mat(Size(width, height), CV_8UC3, Scalar(0, 0, 0));
img.release();
答案 3 :(得分:2)
您可以release
当前内容或指定新的Mat
。
Mat m = Mat::ones(1, 5, CV_8U);
cout << "m: " << m << endl;
m.release(); //this will remove Mat m from memory
//Another way to clear the contents is by assigning an empty Mat:
m = Mat();
//After this the Mat can be re-assigned another value for example:
m = Mat::zeros(2,3, CV_8U);
cout << "m: " << m << endl;