컴퓨터 비전 어플리케이션에 opencv C++ API를 사용하고 cv :: Mat 구조로 매트릭스를 관리합니다. Opencv는 ref 카운팅을 사용하여 생성 된 객체를 cv :: Mat로 릴리즈합니다. 더 구체적인 기계 학습 알고리즘을 위해 libshogun을 사용합니다. Shogun은 SGMatrix라는 자체 행렬 구조를 가지고 있습니다. 나는 이력서에서 SGMatrix를 초기화 :: 매트를 같이 : 내가 좋아하는 장군의 lib에 다른 개체를 사용할 때매트릭스 (dis) 할당
cv::Mat cvmat(100,100,CV_32FC1,cv::Scalar(0.0));
SGMatrix<float> sgmatrix((float*)cvmat.data, cvmat.rows, cvmat.cols);
내 문제는 다음과 같습니다 장군이 생성 행렬을 소유하고 지금 예정이다
CSimpleFeatures<float>* features = new CSimpleFeatures<float>(sgmatrix);
features
으로, 나는 런타임에 opencv가 shogun에 의해 이미 풀어 놓은 cvmat
을 해제하려고 할 때 오류가 발생합니다. 어떻게 처리 할 수 있습니까? 나는 매트릭스를 복제하고 싶지 않다.
참고 : cvmat 객체에 대한 참조를 추가하려했지만 동일한 오류가 발생했습니다. Opencv가 아닌 쇼군. *** glibc가 발견되었습니다. ***/home/eric/dev/(...) : 이중 자유 또는 손상 (아웃) : 0x0000000000a2f1c0 *** ======= Backtrace : ======== = /usr/local/lib/libshogun.so.12 – Eric