-1

私はこれに 2 日間参加し、検索エンジンで見つけられるあらゆる解決策を試しました。しかし、私はまだここで立ち往生しています。

ここからスーパーピクセル実装のパッケージをダウンロードしました。

関数は C++ ですが、Linux 64 ビット OS 用に mex ファイルが生成されています。Windows 8 64 ビットを使用しているため、システム用に 1 つの mex ファイルを生成する必要があります。

ファイルは、サイトからのパッケージで既に提供されています。mex をセットアップし、適切な openCV パスと環境変数を提供した後、コード compile_mex.m を実行しました。

mex -IB:\Opencv\opencv\build\include\opencv -c seeds2.cpp

mex mexSEEDS.cpp -IB:\Opencv\opencv\build\include\opencv seeds2.obj

そして、解決策に到達できない次のエラーが表示されます

mexSEEDS.obj : error LNK2019: unresolved external symbol cvSaveImage referenced in function "void __cdecl SaveImage(unsigned int *,int const &,int const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?SaveImage@@YAXPEAIAEBH1AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)

私はこれを通過することができませんでした。多くのサイト/フォーラムで提案されているように、ライブラリ、コンパイラディレクトリ、リンカーライブラリとディレクトリをリンクした後でも、これをコードブロックで実行すると同じエラーが発生しました。

4

1 に答える 1

0

答えがわかりました。

  1. mexopts.bat を見つけて開きます
  2. このpdfにアクセス
  3. C++ および MATLAB MEX ファイルをコンパイルし、それらを OPENCV OBJ ファイルにリンクするように MATLABを設定する の手順に従ってください。
  4. mexopts.batの編集中に、ライブラリをLINKFLAGSに追加する際に、/build/x64/vc10/lib から次のライブラリを追加します。

    core249 and 249d
    flann249 (and the same as above. rest also have the tag 249 and 249d. this is the version number. 2.4.9 in my case)
    highgui
    imageproc
    legacy
    objdetect
    

その理由は、mexseeds.cpp をコンパイルするためにこれらすべてが必要だったからです。しかし、基本は少なくとも最初の 4. を追加した後、mex ファイルを保存してコンパイルします。古いバージョンのopencvで作成されたため、pdfではライブラリ名が異なります。

于 2014-04-29T08:56:01.023 に答える