私は次のことをしたい:
- 何とか取得した Cv::mat のコピーを作成
- それを変換します
- データへのポインターをメタ情報 (サイズ、フォーマットなど) と共に呼び出し元に返します。
- 完了したら、データを解放します
私が使用しているコードは次のとおりです。
cv::Mat m(...); //here is source image
cv::Mat *img = new cv::Mat(m.clone());// copy the data
//do transformations
(*result)->pdata = img->data; // pointer to data gois to out parameter
img->addref(); //to prevent freeing the image data after tempo
delete img; //dispose of temporary object
...
delete [] outparam->pdata; //result == &outparam; free data after use
ただし、このコードを実行すると、次の場合にアサーション エラーが発生します。
_ASSERTE(_BLOCK_TYPE_IS_VALID(pHead->nBlockUse));
どうすれば目標を達成できますか?