OpenCV 2.3.1 のカスタム アロケータを設定することは可能ですか? 私はメモリプールを作成しており、OpenCV でそのプールを必要に応じて使用したいと考えています。
それは可能ですか?もしそうなら、どうすればそれを行うことができますか?
更新しました:
前回の回答からいくつかの開発を行いましたが、まだいくつかの問題があります。これは私が今持っているコードです:
CvAllocFunc allocCV()
{
return (CvAllocFunc) MEMPOOL->POOLalloc(sz);
}
CvFreeFunc deallocCV()
{
return (CvFreeFunc) MEMPOOL->POOLfree(ptr);
}
...
cvSetMemoryManager(allocCV(),deallocCV(),data);
さて、私の質問は、割り当てたいデータへのサイズとポインターにアクセスし、後で割り当てを解除するにはどうすればよいですか?
私が使用している OpenCV のバージョン (2.3.1) は、cvSetMemoryManager を使用するとエラーをスローします。その理由はソースコードにあります:
void cvSetMemoryManager( CvAllocFunc, CvFreeFunc, void * )
{
CV_Error( -1, "Custom memory allocator is not supported" );
}
これにはとてもがっかりしました。OpenCV でカスタム メモリ プールを使用することはもうできないと思います。