- 環境:win1064ビット
- ソフトウェア:OpenCV3.4.2ソースコード、OpenCV3.4.2 contrib(バージョンは同じである必要があります)
- cmake:3.12.1 vs2017
- プロセス:
cmake-gui.exeを開き、ソースパスとビルドパスを追加し、構成し、ポップアップダイアログボックスでvisual studio 15 2017win64を選択します。これはコンパイルされた64ビットバージョンです。visualstudio152017を選択した場合は、は32ビットバージョンですはい、[完了]をクリックします。終了すると赤になり、OPENCV_EXTRA_MODULES_PATHオプションを見つけて、OpenCV contribディレクトリでモジュールパスを指定します。注:直接コピーするパスは\ですが、/が必要です。 。試して変更しませんでしたが、コンパイルに失敗しました。報告されたエラーのプロセスはどうでしたか?エラーログを削除しました。安いです!!!この後も設定が必要です。終了後、赤いものはありません。ある場合は、CMakeDownloadLog.txtを確認してください。エラーが発生した場合は、まずログを調べて原因を正確に特定することを検討してください。エラーを減らし、不必要な時間の損失を減らします。この部分が赤でない場合は、[生成]をクリックします
ビルドパスでOpenCV.slnを見つけ、CMakeTargetsの下でINSTALLを選択し、INSTALL-generateを右クリックして、ファイルの生成を開始し、再生成を選択します。
公式ウェブサイトからダウンロードしたOpenCV3.4.2.exeは解凍され、コンパイルされたOpenCV dllファイルです。Baiduクラウドリンク:
リンク:https
://pan.baidu.com/s/1YWkCLEZrpYxh9ci_ch_BSQ抽出コード:pa0x
完全なプロセスリファレンスリンク:https://blog.csdn.net/fengbingchun/article/details/84030309
このリンクによって生成されたOpenCVダイナミックライブラリは正しく、検証されています
2020年8月22日にいくつかのメモを更新します。
- cmakeを介してOpenCVをコンパイルする場合は、インストール時に1つのコンポーネントでcmake関連のコンポーネントをチェックする必要があります。2つチェックしました。
- opencv_contribのインストールでインクルードファイルを開くことができません: "opencv2 / xfeatures2d / cuda.hpp":
解決策:
次のコンテンツをCMakeLists.txtに追加します(絶対パスを使用してから、「/」を使用してパスに注意を払います。成功せずに変更しないようにしました):
INCLUDE_DIRECTORIES( "opencv-3.4.2 / opencv_contrib-3.4.2 / modules / xfeatures2d / include")
CMakeLists.txtは次のパスにあります:opencv
-3.4.2 / modules / stitching / CMakeLists.txt - エラーデータ:ダウンロードに失敗しました:28;「タイムアウトに達しました」...
顔:顔の位置合わせ用のモデルファイルを取得できません
解決策:
ログファイルを
表示:生成されたパスでCMakeDownloadLog.txtを表示します。成功ダウンロードし、指定されたブラウザパスに従ってダウンロードし、opencv-3.4.2 / .cache / data /としてこのパスに配置します - エラーメッセージエラーC2440:「初期化」:「constchar *」から「char *」に変換できません。
解決策はたくさんあります。エラーメッセージをダブルクリックして、エラーが報告された行に移動し、置き換えました。 char * with const char *。問題
次のステップは、vsでOpenCV環境を構成する
ことです。この部分も記録する必要があります。私はvs Xiaobaiです。当初、自分でコンパイルしたOpenCVはすでに構成されていると思っていたので、再度構成する必要はありません。ここで費やした時間は比較されますOpenCVがオープンソースのビジュアルライブラリであることに気付くまで、vsはIDEであり、ライブラリをコンパイルしたばかりで、vsとOpenCVの間の接続を確立しなかったと感じ、構成する必要があることに気づきましたOpenCVの別の波
テキストの始まり:
- コンパイルされたD:\ vs2017 \ opencv \ vs2017 \ install \ x64 \ vc15 \ binの現在のローカルパスを環境変数に追加します
- binディレクトリにあるopencv_world342.dllファイルとopencv_world342d.dllファイルをフォルダC:\ Windows \ SysWOW64にコピーします。これら2つのファイルもフォルダC:\ Windows \ System32に配置します。これは、通常、このフォルダに配置されると思うためです。
- binディレクトリのopencv_ffmpeg342_64.dllをフォルダC:\ Windows \ System32にコピーします
- vsで空のプロジェクトを作成する
- 属性マネージャー、メニューバー->ビュー->その他のウィンドウ->属性マネージャーを入力してDebug | X64を構成し、Microsoft.Cpp.x64.userを右クリック
して、属性ペアのVC ++ディレクトリをクリックします->ディレクトリとVC ++を追加しますディレクトリへの関連パス->ライブラリディレクトリ、およびリンカーへの関連パスの追加->入力->追加の依存関係 - インクルードディレクトリにインクルード、OpenCV、OpenCV2のパスを追加します
- 上記のbinディレクトリと同じレベルにあるライブラリディレクトリにlibディレクトリを追加します。
- リンカ- >入力- >追加の依存関係を追加
opencv_world342d.lib
opencv_world342.lib
チュートリアルでは、ちょうど私が一緒でと思うので、私は、リストに追加した、LIBを追加しましたが、エラーを添加していません - Release | X64を構成し、Microsoft.Cpp.x64.userを右クリックし、[Properties Linker]-> [Input]-> [Additional Dependencies]をクリックして、opencv_world342.libopencv_world342d.libを追加します。ここでも構成しました。
- これで構成が完了しました。次のステップは、画像を読んでOpenCVが成功するかどうかをテストすることです。
完全なプロセス参照リンク:https://blog.csdn.net/qq_41175905/article/details/80560429
このリンクをたどって正常に構成すると、画像やディスプレイなどを正常に読み取ることができます。
- 残りの問題:
「Project1.exe」(Win32):「C:\ Windows \ System32 \ WinTypes.dll」がアンインストールされました「
Project1.exe」(Win32):「C:\ Windows \ System32 \ clbcatq.dll」がアンインストールされましたロードされました。PDBファイルが見つからないか開くことができません。
重大なエラーが検出されましたc0000374Project1.exe
がブレークポイントをトリガーしました。
プログラム "[4836] Project1.exe"が終了し、戻り値は0(0x0)です。
この種の問題はスキップできるとインターネット上で言われていますが、エラーや警告ではありません。デバッグせずに直接実行すれば、この問題は発生しません!!!コンテンツのこの部分を見つけるためにもう一度チェックしてください!!!
2.テスト手順
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
const char* imagename = "E:\\test\\06.jpg";//此处为你自己的图片路径
//从文件中读入图像
Mat img = imread(imagename, 1);
//如果读入图像失败
if (img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
//显示图像
imshow("image", img);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}
2020年8月22日に自分のコンピューターでそれを照合した後、私は少し感じました:
- コンピューターにcudaをインストールしました。cmakeプロセス中に、使用されているcudaにチェックマークを付ける必要があります。これをコンパイルしないでください。
- 元の考えを置き換えるために盲目的な努力を使用しないでください!!!