我使用opencv C++ API進行計算機視覺應用,並使用cv :: Mat結構管理矩陣。 Opencv使用引用計數將創建的對象釋放爲cv :: Mat。 我也使用libshogun更具體的機器學習算法。幕府將軍擁有自己的矩陣結構,稱爲SGMatrix。 我從CV初始化SGMatrix ::墊這樣的:矩陣(dis)分配
cv::Mat cvmat(100,100,CV_32FC1,cv::Scalar(0.0));
SGMatrix<float> sgmatrix((float*)cvmat.data, cvmat.rows, cvmat.cols);
我的問題是,當我使用另一個對象在幕府LIB,如:
CSimpleFeatures<float>* features = new CSimpleFeatures<float>(sgmatrix);
其中將軍現在應該自己創建的矩陣與features
,我得到一個錯誤,在運行時,當opencv試圖釋放cvmat
已被釋放由幕府將軍。 我該如何處理?我不想克隆我的矩陣。
注意:我試圖將ref添加到cvmat對象,但得到了相同的錯誤。從幕府,而不是從opencv。 *** glibc檢測到***/home/eric/dev /(...):double free或corruption(out):0x0000000000a2f1c0 *** ======= Backtrace:======== = /usr/local/lib/libshogun.so.12 – Eric 2012-04-27 14:22:04