1

ここで説明されているように OpenCV をインストールしました: Visual Studio の C/C++ 用の openCV 2.4 のインストール

openCV ライブラリをリンクしようとしましたが、このチュートリアルの「ローカル メソッド」で行き詰まりました。

openCV ファイルには次の 2 つの場所があります。 (ビルドディレクトリと呼ぶ)

私が従おうとしているチュートリアルでは、ビルド ディレクトリを参照する $(OPENCV_DIR)\include をリンクするように指示されています。ただし、ビルドディレクトリの「include」フォルダーにはいくつかのcmakeファイルしか含まれていませんが、ソースディレクトリの「include」にはopenCVヘッダーが含まれています(フォルダーopencvおよびopencv内)。代わりにソースディレクトリを使用する必要があることは理解していますが、両方を試してみましたが、どれも機能しません。

次に、チュートリアルでは $(OPENCV_DIR)\libs をリンクするように指示されています。「lib」というフォルダがあるので、単なるスペルミスだと思います。私のフォルダー「lib」には、「Debug」と「Release」の2つのフォルダーが含まれています。[username]/opencv-build/lib/Debug をデバッグ プロパティ ページに追加し、[username]/opencv-build/lib/Release をリリース プロパティ ページに追加する必要がありますか?

両方のプロパティ ページのリンカー入力に 242 バージョンのライブラリを追加しました。

私が何をしたとしても、Visual Studio はすべての include ステートメントを強調表示するため、それ以外のすべてが強調表示されます。

#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

私が間違っていることはありますか?


go4sri回答後の編集:

opencv\include\opencv に変更すると、インクルードの問題 (「stdafx.h」を除く) が解決されましたが、次の「hello world」を試してみました。

 #include <cv.h>
 #include <highgui.h>

 int main ( int argc, char **argv )
 {
     cvNamedWindow( "My Window", 1 );
     IplImage *img = cvCreateImage( cvSize( 640, 480 ), IPL_DEPTH_8U, 1 );
     CvFont font;
     double hScale = 1.0;
     double vScale = 1.0;
     int lineWidth = 1;
     cvInitFont( &font, CV_FONT_HERSHEY_SIMPLEX | CV_FONT_ITALIC,
             hScale, vScale, 0, lineWidth );
     cvPutText( img, "Hello World!", cvPoint( 200, 400 ), &font,
             cvScalar( 255, 255, 0 ) );
     cvShowImage( "My Window", img );
     cvWaitKey();
     return 0;
}

インクルードは強調表示されなくなりましたが、他のすべてはまだ強調表示されています。エラーは「識別子 XXX が定義されていません」です。


編集

一部のファイルを以前のバージョンの openCV から にコピーしました<source_directory>\include\opencv2。現在、Visual Studio は何も強調表示しませんが、ビルドしようとすると、_cvCreateImage、_cvInitFont、_cvNamedWindow、_cvPutText、_cvShowImage、および _cvWaitKey に対して「未解決の外部シンボル」エラーが発生します。

4

1 に答える 1

1

ソース ディレクトリのインクルードを使用するのは正しかったです。

インクルードを次のように変更します。

#include <opencv\cv.h>
#include <opencv\cxcore.h>
#include <opencv\highgui.h>

それらはすべて、include の下の opencv ディレクトリに含まれています。これは、Opencv を使用する標準的な方法です。

ただし、include オプションを<source_dir>\include\opencv;<source_dir>\include\opencv2;<source_dir>\include[これは推奨されません]に変更することもできます。

ライブラリの場合:

はい。追加のライブラリ ディレクトリ オプションでデバッグ ディレクトリを使用します (リリースの場合はリリース)。入力ライブラリ名も変更する必要があります。すべてのデバッグ ライブラリはdで終わりますが、リリース ライブラリはそうではありません。例えば:

デバッグ ライブラリの名前:opencv_imgproc242d.lib リリース ライブラリの名前:opencv_imgproc242.lib

お役に立てれば...

于 2012-07-18T11:38:23.770 に答える