36

OpenCV 2.4をインストールし、MinGWでコードをコンパイルするにはどうすればよいですか?

4

7 に答える 7

64

1.OpenCV2.4.3のインストール

まず、sourceforge.netからOpenCV2.4.3を入手します。自己ファイル抽出なので、ファイルをダブルクリックするだけでインストールを開始できます。たとえば、ディレクトリにインストールしますC:\

OpenCV自己解凍型

すべてのファイルが抽出されるまで待ちます。C:\opencvOpenCVヘッダーファイル、ライブラリ、コードサンプルなどを含む新しいディレクトリを作成します。

C:\opencv\build\x86\mingw\bin次に、システムPATHにディレクトリを追加する必要があります。このディレクトリには、コードの実行に必要なOpenCVDLLが含まれています。

[コントロールパネル] → [システム] → [システムの詳細設定] → [詳細設定]タブ→ [環境変数... ]を開きます。

以下のようなウィンドウが表示されます。

OpenCVDLLディレクトリをシステムパスに追加します

[システム変数]セクションで、 [パス](1)を
選択し、[編集... ] (2)をクリックし、(3)を追加して、[ OK ]をクリックします。C:\opencv\build\x86\mingw\bin

これで、コンピューターへのOpenCV2.4.3のインストールが完了します。


2.MinGWコンパイラスイートのインストール

コードのコンパイルにはgcc(GNUコンパイラコレクション)を使用することを強くお勧めします。gccはLinuxシステムで広く利用可能なコンパイラスイートであり、MinGWはWindowsのネイティブポートです。

Sourceforge.netからMinGWインストーラーをダウンロードし、ダブルクリックしてインストールを開始します。ウィザードに従って、インストールするディレクトリを選択します。たとえば、C:\MinGW

MinGWインストールでディレクトリを選択します

インストールする「Cコンパイラ」と「C++コンパイラ」を選択します。

インストールするコンポーネントを選択します

インストーラーはインターネットからいくつかのパッケージをダウンロードするので、しばらく待つ必要があります。インストールが完了したら、前述の手順を使用してシステムパスに追加C:\MinGW\binします。

MinGWbinディレクトリをシステムパスに追加します

MinGWのインストールが成功したかどうかをテストするには、コマンドラインボックスを開いて次のように入力しますgcc。すべて問題がない場合は、次のメッセージが表示されます。

gcc: fatal error: no input files
compilation terminated

これでMinGWのインストールが完了しました。今が「Hello、World!」を作成するときです。プログラム。


3.サンプルコードを書く

テキストエディタを開き、以下のコードを入力して、ファイルをに保存しますloadimg.cpp

#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
  Mat im = imread(argc == 2 ? argv[1] : "lena.jpg", 1);
  if (im.empty())
  {
    cout << "Cannot open image!" << endl;
    return -1;
  }

  imshow("image", im);
  waitKey(0);

  return 0;
}

上記lena.jpgのファイルと同じディレクトリに、または任意の画像を配置します。コマンドラインボックスを開き、次のように入力して上記のコードをコンパイルします。

g++ -I"C:\opencv\build\include" -L"C:\opencv\build\x86\mingw\lib" loadimg.cpp -lopencv_core243 -lopencv_highgui243 -o loadimg

正常にコンパイルされると、という名前の実行可能ファイルが作成されloadimg.exeます。

タイプ:

loadimg

プログラムを実行します。結果:

最初のOpenCVプログラムの結果


4.ここからどこへ行くのですか?

OpenCV環境の準備ができたので、次は何ですか?

  1. サンプルディレクトリ→に移動しC:\opencv\samples\cppます。
  2. いくつかのコードを読んでコンパイルします。
  3. 独自のコードを記述します。
于 2012-06-02T06:33:14.640 に答える
21

@bsdnoobzの回答の説明は確かに役に立ちますが、私のシステムでOpenCVを動作させることができませんでした。

どうやら私はライブラリを動作させるために自分でコンパイルする必要があり、ビルド済みのバイナリを頼りにする必要はありませんでした(おそらく私のシステムとの非互換性のためにプログラムがクラッシュしました)。

私はそれを機能させ、OpenCVをコンパイルしてインストールし、それを使用するようにNetbeansを構成するための包括的なガイドを作成しました。

完全を期すために、以下にも提供されています。


私が最初にOpenCVを使い始めたとき、私は2つの大きな問題に遭遇しました。

  1. プログラムがすぐにクラッシュしないようにする。
  2. Netbeansを適切に動作させること、特にデバッガを動作させること。

私は多くのチュートリアルと「ハウツー」記事を読みましたが、どれも本当に包括的で徹底的なものではありませんでした。最終的に、私は環境の設定に成功しました。そして、この(素晴らしい)ライブラリをしばらく使用した後、私はこの小さなチュートリアルを書くことにしました。これは、他の人に役立つことを願っています。

このチュートリアルの3つの部分は次のとおりです。

  1. OpenCVのコンパイルとインストール。
  2. Netbeansの構成。
  3. サンプルプログラム。

私が使用している環境は、Windows 7、OpenCV 2.4.0、Netbeans 7、およびMinGW 3.20(コンパイラーgcc 4.6.2を使用)です。

前提条件:システムにMinGWとNetbeansがすでにインストールされている。

OpenCVのコンパイルとインストール

OpenCVをダウンロードする場合、アーカイブには実際には、「ビルド」フォルダーにビルド済みのバイナリ(コンパイル済みライブラリとDLL)がすでに含まれています。最初は、誰かが私のためにコンパイルする仕事をすでに行っていると仮定して、それらのバイナリを使用してみました。それはうまくいきませんでした。

最終的には、ライブラリが正しく機能するためには、ライブラリ全体を自分のシステムでコンパイルする必要があると考えました。

幸い、CMakeのおかげで、コンパイルプロセスはかなり簡単です。CMake(Cross-platform Makeの略)は、コンパイラーとプラットフォームに固有のmakefileを生成するツールです。CMakeを使用して、ビルドとコンパイルの設定を構成し、「makefile」を生成してから、ライブラリをコンパイルします。

手順は次のとおりです。

  1. CMakeをダウンロードしてインストールします(インストールウィザードで、CMakeをシステムPATHに追加することを選択します)。
  2. OpenCVの「リリース」バージョンをダウンロードします。
  3. 選択したディレクトリにアーカイブを抽出します。を使用し c:/opencv/ます。
  4. CMakeGUIを起動します。
    1. ソースディレクトリを参照しc:/opencv/ます。
    2. バイナリを構築する場所を選択します。私はを選びc:/opencv/releaseました。
      CMake構成-1
    3. [構成]をクリックします。開いた画面で、コンパイラに応じてジェネレータを選択します。私たちの場合は「MinGWMakefiles」です。
      CMake構成-2
    4. すべてがロードされるのを待ちます。その後、次の画面が表示されます。
      CMake構成-3
    5. 必要に応じて設定を変更するか、デフォルトのままにします。完了したら、もう一度[構成]を押します。ログウィンドウに「構成が完了しました」と表示され、すべてのセルから赤い背景が消えるはずです。
      CMake構成-4
    6. この時点で、CMakeは、コンパイラーでOpenCVをコンパイルするためのmakefileを生成する準備ができています。[生成]をクリックして、makefileが生成されるのを待ちます。プロセスが終了すると、「生成が完了しました」と表示されます。この時点から、CMakeは不要になります。
  5. MinGWシェルを開きます(次の手順は、Windowsのコマンドプロンプトからも実行できます)。
    1. ディレクトリを入力しc:/opencv/release/ます。
    2. 入力mingw32-makeしてEnterキーを押します。これにより、コンパイルプロセスが開始されます。
      MinGW Make
      MinGWMake-コンパイル
    3. コンパイルが完了すると、OpenCVのバイナリを使用できるようになります。
    4. 便宜上、ディレクトリ をシステムPATHに追加する必要がC:/opencv/release/binあります。これにより、プログラムが実行に必要なDLLを確実に見つけることができます。

Netbeansの構成

Netbeansには、ヘッダーファイルとコンパイル済みライブラリ(前のセクションで作成したもの)の場所を通知する必要があります。

ヘッダーファイルは、コンパイルとコード補完の2つの理由で必要になります。コンパイルされたライブラリは、リンク段階で必要です。

注:デバッグを機能させるには、OpenCV DLLが使用可能である必要があります。そのため、OpenCV DLLを含むディレクトリをシステムPATHに追加しました(前のセクション、ステップ5.4)。

まず、NetbeansがMinGWで動作するように正しく構成されていることを確認する必要があります。以下のスクリーンショットを参照して、設定が正しいことを確認してください(ご使用のインストールに応じてパスが変更されることを考慮してください)。また、コマンドはCygwinからではなくmsysからのものである必要があることに注意makeください。

NetbeansMinGW構成

次に、Netbeansで作成する新しいプロジェクトごとに、インクルードパス(ヘッダーファイルを含むディレクトリ)、ライブラリパス、および使用する特定のライブラリを定義する必要があります。「プロジェクト」ペインでプロジェクト名を右クリックし、「プロパティ」を選択します。インクルードパスを追加します(ご使用のインストールに応じてパスを変更します)。

Netbeansプロジェクトのインクルードパス

ライブラリパスを追加します。

Netbeansライブラリパス

使用する特定のライブラリを追加します。これらのライブラリは、リンク段階でプログラムに動的にリンクされます。通常core、プログラムの特定のニーズに応じて、ライブラリとその他のライブラリが必要になります。

Netbeansにはライブラリが含まれます

これで、OpenCVを使用する準備が整いました。

概要

OpenCVをインストールしてNetbeansで使用するために完了する必要のある一般的な手順は次のとおりです。

  1. OpenCVをコンパイラでコンパイルします。
  2. DLLを含むディレクトリをシステムPATH(この場合はc:/ opencv / release / bin)に追加します。
  3. ヘッダーファイルを含むディレクトリをプロジェクトのインクルードパス(この場合はc:/ opencv / build / include)に追加します。
  4. コンパイルされたライブラリを含むディレクトリをプロジェクトのライブラリパス(この場合はc:/ opencv / release / lib)に追加します。
  5. プロジェクトにリンクする必要のある特定のライブラリを追加します(例:libopencv_core240.dll.a)。

例-OpenCVを使用した「HelloWorld」

これは、GUIウィンドウに「HelloWorld:)」というテキストを描画する小さなサンプルプログラムです。これを使用して、インストールが正しく機能することを確認できます。プログラムをコンパイルして実行すると、次のウィンドウが表示されます。

OpenCV Hello World

#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"

using namespace cv;

int main(int argc, char** argv) {
    //create a gui window:
    namedWindow("Output",1);

    //initialize a 120X350 matrix of black pixels:
    Mat output = Mat::zeros( 120, 350, CV_8UC3 );

    //write text on the matrix:
    putText(output,
            "Hello World :)",
            cvPoint(15,70),
            FONT_HERSHEY_PLAIN,
            3,
            cvScalar(0,255,0),
            4);

    //display the image:
    imshow("Output", output);

    //wait for the user to press any key:
    waitKey(0);

    return 0;
}
于 2012-10-23T20:02:48.893 に答える
13

これは私にはうまくいきません。ネット上で見つけたすべてのチュートリアルを数日かけて追跡し、最終的に自分のバイナリをコンパイルしました。すべてがここで説明されています:OpenVC 2.4.5、Eclipse CDT Juno、MinGWエラー0xc0000005

多くの試行錯誤の末、私はこのチュートリアルに従い、自分のバイナリをコンパイルすることにしました。プリコンパイルされたバイナリが機能していないと不満を言う人が多すぎるようです。EclipseCDTJunoはすでにインストールされています。

私の手順は次のとおりです。

  1. MinGWをダウンロードしてインストールし、c:/ mingw/binを使用してシステムPATHに追加します
  2. http://www.cmake.orgからcmakeをダウンロードしてインストールします
  3. OpenCV2.4.5Windowsバージョンをダウンロードする
  4. OpencvをC:\ OpenCV245PC \にインストール/解凍します(README、index.rstおよびCMakeLists.txtはすべてのサブフォルダーにあります)
  5. CMake GUIツールを実行してから、
  6. ソースとしてC:\OpenCV245PC\を選択します
  7. バイナリをビルドする宛先C:\ OpenCV245MinGW\x86を選択します
  8. 構成ボタンを押し、ジェネレーターとしてMinGWMakefilesを選択します。ウィンドウにいくつかの赤いハイライトがあります。必要に応じてオプションを選択してください。
  9. もう一度[構成]ボタンを押します。これで設定が完了しました。
  10. [生成]ボタンを押します。
  11. 生成が完了したら、プログラムを終了します。
  12. Cmakeプログラムを終了します。
  13. コマンドラインモード(cmd.exe)を実行し、宛先ディレクトリC:\ OpenCV245MinGW\x86に移動します
  14. 「mingw32-make」と入力します。バイナリの構築の進捗状況が表示されます。コマンドが見つからない場合は、システムPATHがc:/ mingw/binで追加されていることを確認する必要があります。選択したオプションに従ってビルドが続行され、完了します。
  15. WindowsシステムのPATH([マイコンピューター]>右ボタンクリック>[プロパティ]>[詳細設定]>[環境変数]>[パス])で、宛先のbinディレクトリC:\ OpenCV245MinGW \ x86\binを追加します。
  16. コンピューターを再起動
  17. Eclipse CDT IDEに移動し、サンプルのOpenCVコードを使用してC ++プログラムを作成します(このトピックの上部にあるコードを使用できます)。
  18. [プロジェクト]>[プロパティ]>[C/C++ビルド]>[設定]>[GCCC++コンパイラ]>[インクルード]に移動し、ソースのOpenCVフォルダー "C:\ OpenCV245PC \ build\include"を追加します。
  19. [プロジェクト]>[プロパティ]>[C/C++ビルド]>[設定]>[MinGWC++リンカー]>[ライブラリ]に移動し、ライブラリに1つずつ追加します(-l) 1つずつ(これはプロジェクトごとに異なる可能性があります。必要に応じてすべて追加できます。それらのいくつかはあなたがあなたのプロジェクトに必要なものだけです):opencv_calib3d245 opencv_contrib245 opencv_core245 opencv_features2d245 opencv_flann245 opencv_gpu245 opencv_highgui245 opencv_imgproc245 opencv_legacy245 opencv_ml245 opencv_nonfree245 opencv_
  20. 構築されたOpenCVライブラリフォルダー「C:\ OpenCV245MinGW \ x86 \ lib」をライブラリ検索パス(-L)に追加します。

このコードを使用して、セットアップをテストできます。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>

using namespace std;
using namespace cv;

int main()
{

Mat img = imread("c:/lenna.png", CV_LOAD_IMAGE_COLOR);

namedWindow("MyWindow", CV_WINDOW_AUTOSIZE);
imshow("MyWindow", img);

waitKey(0);
return 0;
}

C:/に画像を配置することを忘れないでください(または、適切と思われる場所であれば、Eclipseがアクセスを読み取ったことを確認してください。

于 2013-07-01T11:19:54.987 に答える
3

opencv 2.4.2をインストールした場合は、を次のように変更する必要があります-lopencv_core240-lopencv_core242

私も同じ過ちを犯しました。

于 2012-07-30T07:34:43.740 に答える
2

Windows 64ビットでは、次のように機能します。

  1. opencv-3.0(ベータ版)MinGW(コマンドラインツール)をダウンロードします。
  2. 上記のそれぞれのbinフォルダーをPATHvarに追加します。
  3. にフォルダ「release」(任意の名前を指定できます)を作成します。
  4. 作成したフォルダにプロンプ​​トターミナルを開き、以下のコマンドを実行します。
  5. このコマンドをコピーして貼り付ける

    cmake -G "MinGW Makefiles" -D CMAKE_CXX_COMPILER=mingw32-g++.exe -D WITH_IPP=OFF MAKE_MAKE_PROGRAM=mingw32-make.exe ..\

  6. このコマンドを実行しますmingw32-make

  7. このコマンドを実行しますmingw32-make install

終わり

于 2015-04-24T18:11:03.953 に答える
1

私はこのステップバイステップの説明を使用しました、そしてそれは働きました。

http://nenadbulatovic.blogspot.co.il/2013/07/configuring-opencv-245-eclipse-cdt-juno.html

于 2014-02-23T19:42:07.423 に答える
0

@Nenad Bulatovicが指摘しているように、ライブラリを追加するときは注意が必要です(19番目のステップ)。各ライブラリを1行ずつ追加するときは、末尾にスペースを追加しないでください。そうでなければ、mingwは大騒ぎになります。

于 2014-11-26T08:07:42.303 に答える