5

Visual Studio 2008 (Professional Edition) で OpenCV を使用しようとすると、問題が発生します。OpenCV サンプルを実行するために必要なことはすべて実行したと思いますが、実行時エラーが原因でクラッシュします。これは私を狂わせています。誰かが助けてくれることを願っています。

しかし、まず最初に。

私のインストール手順

  1. sourcefourge.net からOpenCV 2.4.5をダウンロードしました。

  2. プロンプトが表示されたら、上記のリンクからダウンロードした .exe の「抽出先」オプションとして「Z:\Games instalados\OpenCV」を選択しました。

  3. [コントロール パネル] -> [システム] -> [システムの詳細設定] に移動し、[詳細] タブの [環境変数] をクリックしました。「システム変数」ボックスで「パス」を強調表示し、「編集...」をクリックしました。新しいウィンドウで、「変数値」のテキストの最後にインストール ディレクトリを「;」で追加しました。その前に、つまり ";Z:\Games instalados\OpenCV\opencv\build\x86\vc11\bin" (二重引用符なし)。スクリーンショットは次のとおりスクリーンショットです。

  4. Visual Studio 2008 で新しいプロジェクトを作成: [ファイル] -> [新規] -> [プロジェクト...] を選択し、プロジェクトの種類として [その他の言語] -> [Visual C++] -> [Win32] を選択し、テンプレートとして [Win32 コンソール アプリケーション] を新しい計画クリックしました。新しいウィンドウで「次へ」をクリックし、「コンソール アプリケーション」、「空のプロジェクト」、「終了」の順に選択します。新しい窓
  5. 「ソリューション エクスプローラー」で、プログラムを右クリックし、「プロパティ」を選択しました。次に、「構成プロパティ」->「C/C++」->「一般」、および追加した追加のインクルード ディレクトリ:
    • Z:\Games instalados\OpenCV\opencv\build\include
    • Z:\Games instalados\OpenCV\opencv\build\include\opencv
    • Z:\Games instalados\OpenCV\opencv\build\include\opencv2 "追加のインクルード
  6. "Configuration Properties" -> "C/C++" -> "Linker" -> "General" で、"Additional Library Directories" に "Z:\Games instalados\OpenCV\opencv\build\x86\" を追加しました。 vc11\lib".追加ライブラリ
  7. 「構成プロパティ」->「C/C++」->「リンカー」->「入力」の「追加の依存関係」に次を追加しました。
    • opencv_calib3d245.lib
    • opencv_contrib245.lib
    • opencv_core245.lib
    • opencv_features2d245.lib
    • opencv_flann245.lib
    • opencv_gpu245.lib
    • opencv_highgui245.lib
    • opencv_imgproc245.lib
    • opencv_legacy245.lib
    • opencv_ml245.lib
    • opencv_nonfree245.lib
    • opencv_objdetect245.lib
    • opencv_photo245.lib
    • opencv_stitching245.lib
    • opencv_superres245.lib
    • opencv_ts245.lib
    • opencv_video245.lib
    • opencv_videostab245.lib
    • opencv_calib3d245d.lib
    • opencv_contrib245d.lib
    • opencv_core245d.lib
    • opencv_features2d245d.lib
    • opencv_flann245d.lib
    • opencv_gpu245d.lib
    • opencv_highgui245d.lib
    • opencv_imgproc245d.lib
    • opencv_legacy245d.lib
    • opencv_ml245d.lib
    • opencv_nonfree245d.lib
    • opencv_objdetect245d.lib
    • opencv_photo245d.lib
    • opencv_stitching245d.lib
    • opencv_superres245d.lib
    • opencv_ts245d.lib
    • opencv_video245d.lib
    • opencv_videostab245d.lib (スクリーンショットが示しているものにもかかわらず、「opencv_ffmpeg245.lib」を追加していないことに注意してください)。 追加の依存関係
  8. 「ソースファイル」→「追加」→「既存アイテム」を右クリックし、「Z:\Games instalados\OpenCV\opencv\samples\cpp\cout_mat.cpp」ファイルを追加。 cout_mat を追加

問題

  1. プロジェクトをビルドしました。ここでは問題ありません。「ビルドは成功しました」。
  2. 「デバッグ」→「デバッグ開始」。以下が表示されます: エラー http://s8.postimg.org/wdkubk5o3/the_error.jpg エラーの フルサイズ画像: http://s8.postimg.org/wdkubk5o3/the_error.jpg

ハフラインのサンプルも試してみましたが、うまくいきませんでした (.exe imread() と同じフォルダー内の画像でも画像が見つかりません)。

どんな助けでも大歓迎です。

インストール手順のいくつかを十分に明確にしていない場合は、コメントを投稿してください。

この質問がstackoverflow.comに適している理由

OpenCV の最新リリースを Visual Studio 2008 で使用するための完全なインストール手順を (ゼロから) 詳細に説明しました。誰かがこの質問を解決したら、同じ必要性を持つ人のための完全で実用的なチュートリアルを用意します (最新の OpenCV をVisual Studio 2008)、およびおそらく (インストール手順の深さのため) ほとんどの Visual Studio バージョン (2008 だけでなく、チュートリアルはあまり変更されず、読者は簡単に変更できるため) で最新の OpenCV をインストールするための一般的なガイド適応させます)。

4

2 に答える 2

1

opencvの適切なインストールをテストしたい場合は、お勧めします。opencv で simple.jpg 画像を読み込んで表示するだけです。これが機能する場合は、クラッシュしているプログラムのデバッグを開始できます。cout を連続して有効にすることでデバッグできます。最初に、例 cout_mat.cpp でデフォルトの cout を有効にし、残りの部分をコメントするだけです。
これは、インストールをテストするために試すことができる単純なロード プログラムです。

int main(int argc, char*argv[])
{

    cvNamedWindow("My_Win", CV_WINDOW_AUTOSIZE);
    IplImage *img = cvLoadImage("C:\\vid_an2\\Desert.jpg", CV_LOAD_IMAGE_UNCHANGED );

    std::cout<<"Info About Image"<<std::endl;

    std::cout<<"Size of Image "<<img->nSize<<std::endl;
    std::cout<<"Image channels "<<img->nChannels<<std::endl;
    std::cout<<"Image Width "<<img->width<<std::endl;
    std::cout<<"Image Height "<<img->height<<std::endl;
    std::cout<<"Image Depth "<<img->depth<<std::endl;
    std::cout<<"Image WidhtStep "<<img->widthStep<<std::endl;
    std::cout<<"Image Size "<<img->imageSize<<std::endl;

    cvShowImage("My_Win", img);

    cvWaitKey(0);

    // Free the resources.
    cvDestroyAllWindows();
    cvReleaseImage(&img);
return 0;
}
于 2013-05-15T21:44:22.887 に答える