最新版本的 OpenCV 中的许多功能都需要使用 STL 容器。尝试在 Matlab MEX 文件中使用它们时遇到问题。我正在从 Matlab 中编译 MEX 文件。OpenCV 和 Matlab 都使用“/MD”标志,即“多线程 DLL”来生成代码。
编译器:MSVC++ 9.0 Matlab 2010a OpenCV 最新来自 SVN,我认为是 2.11。
我使用的代码非常简单:
vector<KeyPoint> keypoints_vec;
SurfFeatureDetector surf;
surf.detect(cvImg,keypoints_vec);
这会编译,但在 Matlab MEX 文件中运行时会崩溃。崩溃发生在 OpenCV 的 vector::resize 中。旧接口(没有 STL 容器)工作正常,但已弃用。如何在 Matlab 和 OpenCV 之间使用 STL 容器?