Windows(win10)編譯opencv + opencv_contrib

來源:互聯網
上載者:User

標籤:blog   平台   工具   庫檔案   nload   opencv3   編譯   cpu   pool   

  在之前的幾篇文章中,我提到了在Android、Linux中編譯opencv + opencv_contrib,這篇文章主要講在Windows中編譯opencv + opencv_contrib。

首先需要準備的環境有:
  • Window 10 64位:這個大家都知道,就不多說了啊;
  • Cmake:編譯工具,可以https://cmake.org/download/下載安裝,當前的最新版本為3.10.1;
  • Visual Studio:開發工具,編譯的時候也需要用到,我安裝的是Visual Studio 2015。
  • OpenCV Windows包,:https://opencv.org/releases.html;
  • OpenCV_Contrib包,:https://github.com/opencv/opencv_contrib(注意版本對應)。

  將下載得到的OpenCV Windows包解壓,目錄為opencv,然後將下載的OpenCV_Contrib包解壓放入opencv目錄下,建立new_build檔案夾(用來放編譯之後結果):

    

使用cmake產生OpenCV.sln:

  開啟安裝之後的cmake,在where is the source code中選擇openCV的原始碼目錄:F:\opencv\sources;在where to build the binaries中選擇編譯為Visual Studio項目的目錄:F:\opencv\new_build(這裡我選擇剛剛特地建立的new_build目錄),如所示:

    

  點擊Configure按鈕後,彈出對話方塊,選擇編譯器,根據本機電腦的CPU架構,這裡特別要注意的是,自己機器上是否裝有相應的VS版本,如果沒有裝,還是要編譯就會出錯,可能是找不到對應的工具原因,以及選擇X86和X64),這裡用的是VS 2015。

    

  設定完成之後點擊“Generate”開始產生工程,.第一次編譯完成之後,我們需要將額外的opencv_contrib加到工程中進行第二次編譯,在配置表中找到“OPENCV_EXTRA_MODULES_PATH”,設定其參數值為open_contrib源碼包中的modles目錄,我的目錄是“F:\opencv\opencv_contrib\modules”:

    

  再次點擊“Generate”進行第二次編譯:

    

  這時候我們已經可以看見用cmake工具編譯得到的OpenCV.sln:

    

用VS開啟OpenCV.sln工程,編譯產生Debug和Release庫:

  用VS 2015開啟OpenCV.sln工程,在解決方案中可以查看工程目錄:

    

  編譯產生debug版本的庫,記得在此之前要選擇編譯的平台資訊,這就是編譯產生debug版本和release版本的區別,也可以選擇release,因為自己的工程可能要用到相應的動態連結程式庫:

    

  在解決方案中選中工程,右鍵選擇重建解決方案:

    

  編譯成功:

    

  .找到CMakeTargets中的INSTALL,然後右鍵選擇“僅限於項目”-->“僅產生INSTALL”:

    

  完成編譯後,Release模式下同理。此時,有了install目錄。該目錄包含了我們需要的標頭檔、庫檔案。

    

把新的庫檔案配置到到項目中:

   VC++目錄-->包含目錄,添加:

    E:\OpenCV320\opencv\new_build\install\include

  VC++目錄-->庫目錄,添加:

    E:\OpenCV320\opencv\new_build\install\x64\vc14\lib

  連結器-->輸入-->附加依賴項,添加: (注意添加的庫與編譯選項要一致,需要注意debug比release的檔案名稱多了個d)

    opencv_aruco320.lib

    opencv_aruco320d.lib

    opencv_bgsegm320.lib
    opencv_bgsegm320d.lib
    opencv_bioinspired320.lib
    opencv_bioinspired320d.lib
    opencv_calib3d320.lib
    opencv_calib3d320d.lib
    opencv_ccalib320.lib
    opencv_ccalib320d.lib
    opencv_core320.lib
    opencv_core320d.lib
    opencv_datasets320.lib
    opencv_datasets320d.lib
    opencv_dnn320.lib
    opencv_dnn320d.lib
    opencv_dpm320.lib
    opencv_dpm320d.lib
    opencv_face320.lib
    opencv_face320d.lib
    opencv_features2d320.lib
    opencv_features2d320d.lib
    opencv_flann320.lib
    opencv_flann320d.lib
    opencv_fuzzy320.lib
    opencv_fuzzy320d.lib
    opencv_highgui320.lib
    opencv_highgui320d.lib
    opencv_imgcodecs320.lib
    opencv_imgcodecs320d.lib
    opencv_line_descriptor320.lib
    opencv_line_descriptor320d.lib
    opencv_ml320.lib
    opencv_ml320d.lib
    opencv_objdetect320.lib
    opencv_objdetect320d.lib
    opencv_optflow320.lib
    opencv_optflow320d.lib
    opencv_phase_unwrapping320.lib
    opencv_phase_unwrapping320d.lib
    opencv_photo320.lib
    opencv_photo320d.lib
    opencv_plot320.lib
    opencv_plot320d.lib
    opencv_reg320.lib
    opencv_reg320d.lib
    opencv_rgbd320.lib
    opencv_rgbd320d.lib
    opencv_saliency320.lib
    opencv_saliency320d.lib
    opencv_shape320.lib
    opencv_shape320d.lib
    opencv_stereo320.lib
    opencv_stereo320d.lib
    opencv_stitching320.lib
    opencv_stitching320d.lib
    opencv_structured_light320.lib
    opencv_structured_light320d.lib
    opencv_superres320.lib
    opencv_superres320d.lib
    opencv_surface_matching320.lib
    opencv_surface_matching320d.lib
    opencv_text320.lib
    opencv_text320d.lib
    opencv_tracking320.lib
    opencv_tracking320d.lib
    opencv_video320.lib
    opencv_video320d.lib
    opencv_videoio320.lib
    opencv_videoio320d.lib
    opencv_videostab320.lib
    opencv_videostab320d.lib
    opencv_xfeatures2d320.lib
    opencv_xfeatures2d320d.lib
    opencv_ximgproc320.lib
    opencv_ximgproc320d.lib
    opencv_xobjdetect320.lib
    opencv_xobjdetect320d.lib
    opencv_xphoto320.lib
    opencv_xphoto320d.lib
    kernel32.lib
    user32.lib
    gdi32.lib
    winspool.lib
    comdlg32.lib
    advapi32.lib
    shell32.lib
    ole32.lib
    oleaut32.lib
    uuid.lib
    odbc32.lib
    odbccp32.lib

  這樣,我們就可以在VS中使用OpenCV了。

 

  需要提到的一個點,所需要使用Sift等演算法,需要引入xfeatures2d命名空間:

using namespace xfeatures2d;

 

   

Windows(win10)編譯opencv + opencv_contrib

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.