25

を持ってcv::Matいますが、すでにいくつかの値を挿入しています。その内容をクリアするにはどうすればよいですか?

ありがとうございました

4

5 に答える 5

24

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
于 2013-05-29T15:10:38.617 に答える
13

ドキュメントから:

// sets all or some matrix elements to s
Mat& operator = (const Scalar& s);

それから私たちはできる

m = Scalar(0,0,0);

黒いピクセルで塗りつぶします。Scalar には 4 つのコンポーネントがあり、最後の alpha はオプションです。

于 2013-05-29T15:02:33.633 に答える
8

release() 関数を呼び出す必要があります。

 Mat img = Mat(Size(width, height), CV_8UC3, Scalar(0, 0, 0));
 img.release();
于 2013-05-29T15:10:01.850 に答える