VS2013配置OpenCV3.4.0
首先,結尾有彩蛋。
我筆記本安裝的是win7+ubuntu14.04雙系統,最近想使用windows上的vs+opencv測試一些程序,因為看論文的需要還是使用win比較方便,最近嘗試人體檢測,使用Yolo的方法,要求opencv版本在3.4以上,所以只好重新配置opencv。
在這里我主要參照的是這篇博客
關于vs2013+opencv3.4.0只要百度會出現很多教程,在這里我主要記錄一下我配置過程中遇到的問題,以便今后查閱。
2018.7.15更新部分:
經驗教訓:要安裝opencv就要安裝全,否則就會像我一樣沒完沒了重新安裝
安裝opencv3.4.0+contrib,注意opencv版本和conrib版本必須完全一致。
準備的工具:cmake,opencv3.4.0,opencv3.4.0-contrib
cmake下載鏈接
opencv3.4.0可以在官網上下載
opencv3.4.0-contrib可以在此鏈接下載
一 Cmake工具編譯OpenCV源碼
首先在opencv官網要使用選擇opencv源碼版(Sources)下載,解壓,在這里,選擇源碼編譯的原因是我們要安裝opencv3.4.0+opencv3.4.0_contrib。
然后下載cmake 鏈接:https://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.zip
? ? 然后將解壓后的文件放在自己建立的opencv文件夾內,并在文件夾內建立cmake要用到的build文件夾,在這里命名為opencv-3.4.0_vs2013_x64, 如下圖所示:
將解壓后的opencv3.4.0_contrib也放到opencv目錄中。
然后打開cmake,在/bin下雙擊cmake-gui.exe對opencv源碼進行編譯,source code的路徑選擇選擇opencv源碼所在的路徑,在這里我的路徑是:E:\opencv-3.4.0\opencv-3.4.0,where to buid的路徑選擇剛才新建的build文件夾,在這里我的路徑是:E:\opencv-3.4.0\opencv-3.4.0_vs2013_x64。
在search部分搜索:OPENCV_EXTRA_MODULES_PATH,在后面的路徑上添加上自己下載的<opencv_contrib>/modules的路徑,例如,我的路徑是:?E:\opencv-3.4.0\opencv_contrib-3.4.0\modules
點擊Configure按鈕開始編譯,之后會如下圖所得示,顯示一些編譯選項,網上大部分教程都建議取消勾選with_cuda選項,對此我想到以前在Nvida jetson TX1上安裝opencv同樣遇到了opencv與TX1系統自帶的cuda沖突的問題,一定要在cmake選項中關閉編譯cuda,所以在這里我們同樣關閉with_cuda。
再次點擊Configure后下方顯示configure done,然后點擊Generate,下方顯示Gernerate done,然后點擊Open Project會啟動vs2013。到這里opencv的編譯工作接完成了。
?
二 使用VS編譯
在編譯生成完成后,就可以打開vs生成.dll動態鏈接庫了。
編譯完成后,在build問價夾中,也就是我們的opencv3.4.0_vs2013_x64文件夾中找到OpenCV.sln,使用vs打開。
在解決方案管理器上右鍵點擊:重新生成解決方案(需要等待很長一段時間)
然后在CmakeTarget中找到INSTALL,右鍵->僅用于項目->生成
在這里需要注意的是把debug和release都編譯一遍。
?
三 配置VS2013
在點擊Open Project按鈕后 ,打開的vs界面如下圖所示,在這里我忘記截圖了,所以借用該博客的圖和步驟來說明一下,具體步驟這篇大神的文章已經給說的很詳細了,這篇文章配置的是opencv3.3.0,配置3.4.0時,步驟也基本相同。
這里需要記錄的就是按上述步驟完成配置后,測試打開圖片的程序,會出現類似如下圖所示的錯誤:
在這里我們會需要將E:\opencv-3.4.0\opencv-3.4.0_vs2013_x64\bin\Debug路徑下所有*d.dll文件都復制到C:\Windows\System32路徑下,親測可以解決該問題。
接下來我在測試打開圖片的程序中會遇到如下報錯:OpenCV Error: Assertion failed (size.width>0 && size.height>0) in imshow
在網上查找之后找到解決辦法那就是需要在要打開的圖片前加上絕對路徑,即使圖片就在工程文件夾下也不行,在這里附上測試程序源碼:
#include<iostream> #include<opencv2/core/core.hpp> #include<opencv2/highgui/highgui.hpp> using namespace cv; using namespace std; int main() {Mat image = imread("E:\\vsprogram\\Opencv3.4.0_TestDemo\\img.jpg",1);imshow("img", image);waitKey(0);return 0; }試程序運行成功如下圖所示:
?
參考鏈接:
https://blog.csdn.net/hust_bochu_xuchao/article/details/78952481
https://blog.csdn.net/qq_16761599/article/details/78212751
在這里附加opencv3.4.1的debug和release版本的動態依賴庫(注意本文中配置的是opencv3.4.0,下面的動態庫是opencv3.4.1)
debug
opencv_aruco341d.lib
opencv_bgsegm341d.lib
opencv_bioinspired341d.lib
opencv_calib3d341d.lib
opencv_ccalib341d.lib
opencv_core341d.lib
opencv_datasets341d.lib
opencv_dnn_objdetect341d.lib
opencv_dnn341d.lib
opencv_dpm341d.lib
opencv_features2d341d.lib
opencv_flann341d.lib
opencv_fuzzy341d.lib
opencv_hfs341d.lib
opencv_highgui341d.lib
opencv_imgcodecs341d.lib
opencv_imgproc341d.lib
opencv_ml341d.lib
opencv_objdetect341d.lib
opencv_optflow341d.lib
opencv_phase_unwrapping341d.lib
opencv_photo341d.lib
opencv_plot341d.lib
opencv_reg341d.lib
opencv_rgbd341d.lib
opencv_saliency341d.lib
opencv_shape341d.lib
opencv_stereo341d.lib
opencv_stitching341d.lib
opencv_structured_light341d.lib
opencv_superres341d.lib
opencv_surface_matching341d.lib
opencv_text341d.lib
opencv_video341d.lib
opencv_videoio341d.lib
opencv_videostab341d.lib
opencv_xfeatures2d341d.lib
opencv_ximgproc341d.lib
opencv_xobjdetect341d.lib
opencv_xphoto341d.lib
release
opencv_aruco341.lib
opencv_bgsegm341.lib
opencv_bioinspired341.lib
opencv_calib3d341.lib
opencv_ccalib341.lib
opencv_core341.lib
opencv_datasets341.lib
opencv_dnn_objdetect341.lib
opencv_dnn341.lib
opencv_dpm341.lib
opencv_features2d341.lib
opencv_flann341.lib
opencv_fuzzy341.lib
opencv_hfs341.lib
opencv_highgui341.lib
opencv_imgcodecs341.lib
opencv_imgproc341.lib
opencv_ml341.lib
opencv_objdetect341.lib
opencv_optflow341.lib
opencv_phase_unwrapping341.lib
opencv_photo341.lib
opencv_plot341.lib
opencv_reg341.lib
opencv_rgbd341.lib
opencv_saliency341.lib
opencv_shape341.lib
opencv_stereo341.lib
opencv_stitching341.lib
opencv_structured_light341.lib
opencv_superres341.lib
opencv_surface_matching341.lib
opencv_text341.lib
opencv_video341.lib
opencv_videoio341.lib
opencv_videostab341.lib
opencv_xfeatures2d341.lib
opencv_ximgproc341.lib
opencv_xobjdetect341.lib
opencv_xphoto341.lib
總結
以上是生活随笔為你收集整理的VS2013配置OpenCV3.4.0的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你需要来自TrustedInstalle
- 下一篇: Character controller