1

https://github.com/zk00006/OpenTLD/wiki/Installationに示されている手順に基づいて TLD アプリケーションをインストールしています

使用:

OpenCV 2.4.2

Matlab R2010b x 64 ビット

Win7×64

VS2010 プロフェッショナル

このステップ「6)Matlabで、compile.mを実行する」を実行するまで、すべてが正常に機能します

" PC ライブラリ C:\Users\Ko\AppData\Local\Temp\mex_VUBK1k\templib.x およびオブジェクト C:\Users\Ko\AppData\Local\Temp\mex_VUBK1k\templib.exp を作成しています

lk.obj : エラー LNK2019: 関数で参照されている未解決の外部シンボル cvReleaseImage "void __cdecl normCrossCorrelation(struct _IplImage *,struct _IplImage *,struct CvPoint2D32f *,struct CvPoint2D32f *,int,char *,float *,int,int)" (? normCrossCorrelation@@YAXPEAU_IplImage@@0PEAUCvPoint2D32f@@1HPEADPEAMHH@Z)

lk.obj : エラー LNK2019: 関数で参照されている未解決の外部シンボル cvMatchTemplate normCrossCorrelation@@YAXPEAU_IplImage@@0PEAUCvPoint2D32f@@1HPEADPEAMHH@Z)

lk.obj : エラー LNK2019: 関数で参照されている未解決の外部シンボル cvGetRectSubPix "void __cdecl normCrossCorrelation(struct _IplImage *,struct _IplImage *,struct CvPoint2D32f *,struct CvPoint2D32f *,int,char *,float *,int,int)" (? normCrossCorrelation@@YAXPEAU_IplImage@@0PEAUCvPoint2D32f@@1HPEADPEAMHH@Z)

lk.obj : エラー LNK2019: 関数で参照されている未解決の外部シンボル cvCreateImage "void __cdecl normCrossCorrelation(struct _IplImage *,struct _IplImage *,struct CvPoint2D32f *,struct CvPoint2D32f *,int,char *,float *,int,int)" (? normCrossCorrelation@@YAXPEAU_IplImage@@0PEAUCvPoint2D32f@@1HPEADPEAMHH@Z)

lk.obj : エラー LNK2019: 関数 mexFunction で参照されている未解決の外部シンボル cvCalcOpticalFlowPyrLK

lk.obj : エラー LNK2019: 関数 mexFunction で参照されている未解決の外部シンボル cvAlloc

lk.mexw64 : 致命的なエラー LNK1120: 6 つの未解決の外部

C:\PROGRA~1\MATLAB\R2010B\BIN\MEX.PL: エラー: 'lk.mexw64' のリンクに失敗しました。

??? ==> mex at 208 の使用エラー 正常に完了できません。

エラー ==> compile at 32 eval(['mex lk.cpp -O' include lib]);

"

私は多くのウェブサイトを検索しましたが、役に立ちませんでした。うまくいけば、誰かがこの問題について教えてくれます。すべてのソリューションは大歓迎です。

4

1 に答える 1

2

説明をよく読み、それに従っている場合は、.mex バイナリ出力ファイルを作成しているはずです。これは、opencv コードを含む mex ファイルをコンパイルしています。それらを適切にコンパイルできなかったため、エラーが発生しています。mex32 ファイルのフォルダーを確認します。

完全なコンパイルと正常な実行を達成するための手順は次のとおりです。これがうまくいくことを願っています

1 - 2.2 以降ではなく、OpenCV 2.2 をインストールします。あなたがそうしようとすると、これはおかしくなります。C:/OpenC2.2 にインストールします。スペースを使用しないでください。Spaces は、Matlab でのパス検索を coo coo にします。実際、Matlab ではスペースが分割されています。

2 - 64 ビット Matlab (2011) および 64 ビット C++ コンパイラを使用する x64 システムを使用している場合、「mex」コンパイラ オプションで 32 ビット コンパイラを選択する必要があります。MSVC C++ 9.0 32 ビット コンパイラを使用しました。

3 - コンパイラを選択したら、コンパイルを実行します。コンパイルが成功している必要があります。コンパイラのデバッグ フラグを使用してみてください。コンパイルが完了すると、出力が得られます。エラーが発生した場合は、修正してみてください。

4-これが意味することは、OpenCV2.2を見つけるためにOpenTLDで設定されたパスを変更しないことです-これは最もトリッキーな部分です。openTLD はどこにでもインストールできます。32 ビット C++ コンパイラが選択されていることを確認してください。64ビットではありません。

上記が終わったら。走れるはずです。OpenTLD は、最初の実行後はクールです。

于 2012-10-14T06:39:19.770 に答える