0

「GrabCutに基づくオブジェクトセグメンテーション手法」アプローチをMATLABに実装しようとしています。マルコフ確率場のエネルギー関数を最小化するために、ここで提供されている標準の最大フロー/最小カットアルゴリズムを使用しています:http://vision.csd.uwo.ca/code/

質問:MATLABでグラフの作成と最小化の関数を呼び出すためにmexファイルを作成しようとすると、次のエラーが発生します。

未定義のシンボル: "Graph :: Graph(int、int、void()(char))"、参照元:GraphTest.oの_mexFunction

ld:シンボルが見つかりませんcollect2:ldが1つの終了ステータスを返しました

mex:'"GraphTest.mexmaci64"'のリンクに失敗しました。

私のコードは本当に単純で、READMEファイルに記載されているコードの一部を次のようにコピーしただけです。

#include "mex.h"
#include <stdio.h>
#include <math.h>
#include "graph.h"

void mexFunction(int nlhs, mxArray *plhs[],int nrhs, const mxArray *prhs[]) 
{    
    typedef Graph<int, int, int> GraphType;
  GraphType *g = new GraphType(/*estimated # of nodes*/ 2, /*estimated # of edges*/1); 
}

以前にこのパッケージを使用したことがあるか、同様の種類のエラーを経験したことがある人が、問題についての洞察を提供してくれると本当にありがたいです。

前もって感謝します!

4

1 に答える 1

2

Matlabでコンパイルしていると思いますか?

試す:

mex GraphTest.cppgraph.cpp

mexゲートウェイファイルはGraphTest.cppだと思います。最後にタグ付けできる依存関係。これは、単純なプロジェクトにはかなりうまく機能します。大きくなったら、依存関係のある実際のビルドシステムに切り替えたいと思うでしょう。私はCMakeが好きです。

于 2011-05-02T13:00:45.097 に答える