是否可以爲OpenCV 2.3.1設置自定義分配器?我創建了一個內存池,我希望OpenCV使用它所需的池。用於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的自定義內存池了!
我已經嘗試過了,但是我無法啓動它。我不知道我是否做錯了什麼,或者是否因爲opencv的版本。我使用的是OpenCV 2.3.1,該功能來自2.1,我沒有找到與我的版本 –
相同的內容然後發佈您的代碼。我們無法猜出什麼是錯的。 –
我已更新我的問題。感謝您的時間和耐心 –