cmakeコンパイルopencv 3:opencv 3.3.1+contrib+cuda 8.0+vs 2013(2015)+cmake 3.10.1


**参考資料:https://www.learnopencv.com/install-opencv3-on-windows/
エンディングは福祉がありますよ!
**
0はじめに
3.X時代に入ってから、OpenCVはコードライブラリを2つの部分に分け、それぞれ安定したコア機能ライブラリと試験的性質のcontribライブラリであり、3.1以降、コンパイルされたバージョンには既存のx 86プラットフォームのライブラリはなく、x 64のみで、使いたいなら自分でソースコードからコンパイルしなければならない.Cudaを構成するのはGPUの加速を利用するためである.
1必要なファイルのインストール
opencv:https://opencv.org/releases.html opencv_contrbダウンロード:https://github.com/opencv/opencv_contrib/releases tbbダウンロード(cudaの構成に必要なもののみ):https://github.com/01org/tbb/releases
Cudaの前にインストールしました(cuda 8.0);
2 cmakeコンパイル
1.Cmakeを開く
【Where is the source code】OpenCV解凍後のソースコードを入れています私のはC:Users6 QiangDownloadsopencv-3.3.1です
【Where to build the linaries】コンパイルされたプログラム私のはC:Users6 QiangDownloadsopencv-3.3.1build[Advanced]をクリックしてアルファベット順に[Configure]をクリックするとVSコンパイラのバージョン選択画面に入ります.
注意:
**Win 64はパソコンが64ビットシステム、64を持たない表示パソコンがWindows 32ビットシステム、ARMはチップがARMのパソコン(Visual Studio 14 2015 Win 64など)
2.初回コンフィギュレーション
(最初のConfigureは必ずネットワークに接続し、コンパイル中にサードパーティ依存ライブラリffmpegおよびippicvをダウンロードします)
  • contribライブラリの構成OPENCV_を見つけましたEXTRRA_MODULES_PATHアイテム、後にopencv_を追加contrib-3.3.1のmodulesディレクトリ(I:ソフトウェアプロフェッショナルソフトウェアopencv_contrib-3.3.1modulesなど)
  • WITHバー構成(WITH_CUDA,WITH_FFT,WITH_CUBLASはデフォルトで選択されているはず)WITH_EIGN,WITH_TBB

  • 注意:
    cudaをコンパイルしない場合は、cudaを含むすべてのアイテムを検索し、インストール時にエラーが発生しないように、その後の情報を削除します.
    3.2回目のconfigure(cudaをインストールしない場合はこのステップを無視)
    私がダウンロードしたtbbはC:Users6 QiangDownloadstbb 2018_に置いてあります.20171205oss
    注:ここでtbbはパスを保存して中国語がないでください.前に私はずっとコンパイルを間違えていましたが、それが中国語のパスとの災いであることに気づきました.
  • TBBバー構成TBB_ENV_iNLUDE:tbbのincludeを追加したディレクトリ(C:Users6 QiangDownloadstbb 2018_20171205 ossincludeなど)TBB_ENV_LIB:tbbのtbb.libファイル(C:Users6 QiangDownloadstbb 2018_20171205 osslibintel 64vc 12tbb.libなど)を追加(VS 2015 vc 14のディレクトリを選択)TBB_ENV_LIB_DEBUG:tbbのtbbを追加debug.libファイル(C:Users6 QiangDownloadstbb 2018_20171205 osslibintel 64vc 12tbb_debug.libなど)(VS 2015 vc 14のディレクトリを選択)
  • 4.3回目のconfigure(最後に赤がなくなるまでconfigureを続ける)
    TBB_VER_FILE:tbb_を追加stddef.hのディレクトリ(C:Users6 QiangDownloadstbb 2018_20171205 ossincludetbbtbb_stddef.hなど)
    5.generate
    説明:Cmakeの赤い部分の説明はまだ更新されていません.コンフィギュレーションやパラメータを変更するたびにコンフィギュレーションをクリックして更新する必要があります.最後に、構成が間違っていないことを確認してからGenerateをクリックすると、ターゲットフォルダにプロジェクトファイルが生成されます.
    6.generate後の表示
    Configuring done
    Generating done

    3 VSコンパイル
    cmdを開き、自分のコンパイル後のディレクトリ(C:Users6 QiangDownloadsopencv-3.3.1build)に移動し、次のコマンドを実行します.
    Release     :
    cmake.exe --build . --config Release --target INSTALL
    Debug     :
    cmake.exe --build . --config Debug --target INSTALL
    

    コンパイルが完了すると、ターゲットフォルダにinstallフォルダが見つかります.DebugとReleaseの必要なものがあります.(installフォルダの内容をコピーすればいい)
    cudaのコンパイルがなく、debugは13分、releaseは18分かかりました.一方,cudaを加えたコンパイルでは,debug,releaseがそれぞれ6時間程度かかった.
    4コンパイル体験
    全部で5日間のコンパイルを続け、ネット上の手順に従って最初はいろいろな間違いがあったが、海外のブログのコンパイルを参考にして、やっと十数時間以上コンパイルに成功し、自分のコンパイル手順をまとめた.
    最後に、コンパイルに成功しました.(エラーはありません.cuda付きの警告は全部で9万件以上あります.文字形式の警告で、影響しません)
    5 vsでの構成
    具体的な構成手順は、私の別の記事を参照してください.http://blog.csdn.net/luqiang6q/article/details/78935105
    Release版をリリース版、Debug版をデバッグ版と呼ぶ.Debugでは、ワンステップ実行、トレースなどの機能がありますが、生成される実行可能ファイルが大きく、コードの実行速度が遅くなります.Release版は実行速度が速く、実行可能ファイルは小さいが、コンパイル条件ではデバッグ機能を実行できない.
    まずreleaseを使い、問題があったらdebugを使い、最後にリリース用release(releaseの速度はdebugよりずっと速い)を使うと思います.
    debug
    opencv_aruco331d.lib
    opencv_bgsegm331d.lib
    opencv_bioinspired331d.lib
    opencv_calib3d331d.lib
    opencv_ccalib331d.lib
    opencv_core331d.lib
    opencv_cudaarithm331d.lib
    opencv_cudabgsegm331d.lib
    opencv_cudacodec331d.lib
    opencv_cudafeatures2d331d.lib
    opencv_cudafilters331d.lib
    opencv_cudaimgproc331d.lib
    opencv_cudalegacy331d.lib
    opencv_cudaobjdetect331d.lib
    opencv_cudaoptflow331d.lib
    opencv_cudastereo331d.lib
    opencv_cudawarping331d.lib
    opencv_cudev331d.lib
    opencv_datasets331d.lib
    opencv_dnn331d.lib
    opencv_dpm331d.lib
    opencv_face331d.lib
    opencv_features2d331d.lib
    opencv_flann331d.lib
    opencv_fuzzy331d.lib
    opencv_hdf331d.lib
    opencv_highgui331d.lib
    opencv_imgcodecs331d.lib
    opencv_imgproc331d.lib
    opencv_img_hash331d.lib
    opencv_line_descriptor331d.lib
    opencv_ml331d.lib
    opencv_objdetect331d.lib
    opencv_optflow331d.lib
    opencv_phase_unwrapping331d.lib
    opencv_photo331d.lib
    opencv_plot331d.lib
    opencv_reg331d.lib
    opencv_rgbd331d.lib
    opencv_saliency331d.lib
    opencv_shape331d.lib
    opencv_stereo331d.lib
    opencv_stitching331d.lib
    opencv_structured_light331d.lib
    opencv_superres331d.lib
    opencv_surface_matching331d.lib
    opencv_text331d.lib
    opencv_tracking331d.lib
    opencv_video331d.lib
    opencv_videoio331d.lib
    opencv_videostab331d.lib
    opencv_viz331d.lib
    opencv_xfeatures2d331d.lib
    opencv_ximgproc331d.lib
    opencv_xobjdetect331d.lib
    opencv_xphoto331d.lib
    

    release
    opencv_aruco331.lib
    opencv_bgsegm331.lib
    opencv_bioinspired331.lib
    opencv_calib3d331.lib
    opencv_ccalib331.lib
    opencv_core331.lib
    opencv_cudaarithm331.lib
    opencv_cudabgsegm331.lib
    opencv_cudacodec331.lib
    opencv_cudafeatures2d331.lib
    opencv_cudafilters331.lib
    opencv_cudaimgproc331.lib
    opencv_cudalegacy331.lib
    opencv_cudaobjdetect331.lib
    opencv_cudaoptflow331.lib
    opencv_cudastereo331.lib
    opencv_cudawarping331.lib
    opencv_cudev331.lib
    opencv_datasets331.lib
    opencv_dnn331.lib
    opencv_dpm331.lib
    opencv_face331.lib
    opencv_features2d331.lib
    opencv_flann331.lib
    opencv_fuzzy331.lib
    opencv_hdf331.lib
    opencv_highgui331.lib
    opencv_imgcodecs331.lib
    opencv_imgproc331.lib
    opencv_img_hash331.lib
    opencv_line_descriptor331.lib
    opencv_ml331.lib
    opencv_objdetect331.lib
    opencv_optflow331.lib
    opencv_phase_unwrapping331.lib
    opencv_photo331.lib
    opencv_plot331.lib
    opencv_reg331.lib
    opencv_rgbd331.lib
    opencv_saliency331.lib
    opencv_shape331.lib
    opencv_stereo331.lib
    opencv_stitching331.lib
    opencv_structured_light331.lib
    opencv_superres331.lib
    opencv_surface_matching331.lib
    opencv_text331.lib
    opencv_tracking331.lib
    opencv_video331.lib
    opencv_videoio331.lib
    opencv_videostab331.lib
    opencv_viz331.lib
    opencv_xfeatures2d331.lib
    opencv_ximgproc331.lib
    opencv_xobjdetect331.lib
    opencv_xphoto331.lib
    

    6最後にダウンロードしたtbbフォルダのtbb.dllとtbb_をdebug.dllはopencvのx 64vc 12binディレクトリの下に配置されます(そうしないと、この2つのファイルが欠けているエラーが発生する可能性があります).
    私のはC:Users6 QiangDownloadstbb 2018_20171205 ossbinintel 64vc 12の下
    自分でコンパイルしたリソースリンクを添付します.http://download.csdn.net/download/luqiang6q/10180887