OpenCV の最新リリースの多くの機能では、STL コンテナーを使用する必要があります。それらを Matlab MEX ファイルで使用しようとすると、問題が発生します。Matlab 内から MEX ファイルをコンパイルしています。OpenCV と Matlab はどちらも、コード生成に「マルチスレッド DLL」である「/MD」フラグを使用します。
コンパイラ: MSVC++ 9.0 Matlab 2010a SVN の最新の OpenCV、2.11 だと思います。
私が使用しているコードは非常に単純です。
vector<KeyPoint> keypoints_vec;
SurfFeatureDetector surf;
surf.detect(cvImg,keypoints_vec);
これはコンパイルされますが、Matlab MEX ファイルで実行するとクラッシュします。クラッシュは、vector::resize の OpenCV 内にあります。古いインターフェース (STL コンテナーなし) は問題なく動作しますが、非推奨です。Matlab と OpenCV の間で STL コンテナーを使用するにはどうすればよいですか?