VS2017配置OpenCV3.2+contrib3.2
VS2017配置OpenCV3.2+contrib3.2
前言
opecv3.2+opencv_contrib3.2模塊都編譯配置了
在配置contrib之前,嘗試直接配置OpeCV3.2-vc14,發現可以正常使用,也就是說官方包雖然只有vc14,但vs2017(vc15)也支持的很好。
操作環境:WIN10 64bit ,VS2017社區版,CMake-3.8.0-rc3?
準備文件:opencv3.2.zip,opencv_contrib-3.2.0.zip?
【ippicv_windows_20151201.zip protobuf-cpp-3.1.0.tar.gz】?
上述兩個用于編譯的文件常常由于下載緩慢或者無法下載導致編譯失敗。大家可以直接在CSDN上搜索到,如果有需要,后期我會上傳補充。?
?
goturn是我需要的一個訓練模型【無視】?
doc是官方離線文檔【可選】?
extra是跑例程需要的dataset【可選】?
其他幾個就是上文提到的需要注意的是:Cmake最好到官網下載較新的版本,否則無法檢測到VS2017.這里使用CMake3.8版本,其次contrib模塊也要相對應3.2版本,否則很難編譯通過,接下來我們就可以開始了
本文中的路徑都是相對于我的,你的路徑根據實際會有所不同
編譯OpenCV3.2
- 解壓OpenCV3.2。在解壓后的OpenCV3.2的目錄里新建文件夾并命名為myBuild(主要是和原Build文件夾區分)
 - 解壓opencv_contrib-3.2.0(建議移動到OpenCV3.2目錄下,方便后期查找和操作)
 - 解壓并打開Cmake。如果是免安裝程序,就到cmake的解壓目錄的?
bin里雙擊cmake-gui.exe 如下圖? 
4.在cmake的地址欄填入地址?
where is the source code 填你的OpenCV3.2的source目錄?
where to build the biliaries 填剛建立的myBuild
如圖是我的路徑。你要看你的具體目錄來填寫
然后點擊【Configure】會彈出選擇VS的界面,我選的是vs2017 win64?
再次點擊【Configure】?
該過程是需要聯網的,甚至需要帆檣。否則可能出現ERROR:not find 等,一般就是上述提到的兩個文件。?
將ippicv_windows_20151201.zip放到myBuild/3rdparty/ippicv里,再次【Configure】
編譯contrib模塊?
configure done后,找到OPENCV_EXTRA_MODULES_PATH?
將其設置為opencv_contrib/modules的路徑
特別注意生成靜態庫是一定要去除
下面三個模塊:
BUILD_EXAMPLES
BUILD_TEST
BUILD_PERF_TESTS
否則編譯之后大小會很大50G左右
如圖我的路徑。然后【configure】?
由于CMakeLists.txt中下載dnn模塊的鏈接失效,所以需要自己另行下載并移到opencv_contrib-3.2.0/modules/dnn/.download/bd…./v3.1.0?
如圖路徑
然后【Configure】完成后就可以【Generate】了
然后再點擊【Open Project】這會自動打開vs2017?
也可以到myBuild里找到OpenCV.sln打開。?
打開vs2017后一般可以直接看到【解決方案資源管理器】一欄,沒有就點擊【視圖v】-【解決方案資源管理器p】,可以看到OpenCV的解決方案
選擇你需要的平臺?
?
右鍵解決方案重新生成?
?
待結束后,點開CmakeTargets–>INSTALL,右鍵->【僅用于項目】->【僅生成INSTALL】?
等待完成。我這里是成功113,跳過7個。
myBuild最后大概有6.5G【有很多垃圾文件】?
生成后把opencv和contrib綜合了起來。所以配置的時候只需要用myBuild/install了。
這是myBuild里的文件
由于垃圾文件很多myBuild里可以只留下install,其他都可以刪掉
?
同時建議把opencv,contrib里面的源碼留下。我整理如下?
?
分別對應myBuild,opencv源碼+sample,contrib源碼+samples?
整個OpenCV3.2縮小到600+Mb
方便以后查看
接下來就和配置普通版本一樣了。
配置環境變量
- 右鍵電腦【屬性】
 - 【高級系統設置】
 - 【環境變量】
 - 【系統變量】【Path】
 - 在變量值后加?
;D:\Win10soft\OpenCV3.2\myBuild\install\x64\vc15\bin?
注意這要改成你的路徑,多個變量值以英文分號分開 
配置庫目錄和包含目錄?
1. 先新建一個工程?
【文件】->【新建】->【項目】?
確定,在下一步選擇空項目。?
將上方切換至Debug/Release x64,這個根據需要視情況而定。
打開屬性管理器,如果主界面沒有,就點擊【視圖】->【屬性管理器】?
?
因為我們剛剛生成的是Release x64,所以這里我們點開Release|x64
右鍵再點屬性開始配置
1.【通用屬性】->【VC++目錄】->【包含目錄】?
添加?
D:\Win10soft\OpenCV3.2\myBuild\install\include?
D:\Win10soft\OpenCV3.2\myBuild\install\include\opencv?
D:\Win10soft\OpenCV3.2\myBuild\install\include\opencv2?
?
【確定】
2.【庫目錄】?
D:\Win10soft\OpenCV3.2\myBuild\install\x64\vc15\lib?
【確定】
點擊【應用】
3.【通用屬性】->【鏈接器】->【輸入】->【附加依賴項】?
添加如下庫(41個?Debug)
添加如下庫(41個?Debug)
opencv_aruco320d.lib?
opencv_bgsegm320d.lib?
opencv_bioinspired320d.lib?
opencv_calib3d320d.lib?
opencv_ccalib320d.lib?
opencv_core320d.lib?
opencv_datasets320d.lib?
opencv_dnn320d.lib?
opencv_dpm320d.lib?
opencv_face320d.lib?
opencv_features2d320d.lib?
opencv_flann320d.lib?
opencv_fuzzy320d.lib?
opencv_highgui320d.lib?
opencv_imgcodecs320d.lib?
opencv_imgproc320d.lib?
opencv_line_descriptor320d.lib?
opencv_ml320d.lib?
opencv_objdetect320d.lib?
opencv_optflow320d.lib?
opencv_phase_unwrapping320d.lib?
opencv_photo320d.lib?
opencv_plot320d.lib?
opencv_reg320d.lib?
opencv_rgbd320d.lib?
opencv_saliency320d.lib?
opencv_shape320d.lib?
opencv_stereo320d.lib?
opencv_stitching320d.lib?
opencv_structured_light320d.lib?
opencv_superres320d.lib?
opencv_surface_matching320d.lib?
opencv_text320d.lib?
opencv_tracking320d.lib?
opencv_video320d.lib?
opencv_videoio320d.lib?
opencv_videostab320d.lib?
opencv_xfeatures2d320d.lib?
opencv_ximgproc320d.lib?
opencv_xobjdetect320d.lib
添加如下庫 (41個Release)
?添加如下庫(41個Release)
?添加如下庫(41個Release)
??
opencv_aruco320.lib?
opencv_bgsegm320.lib?
opencv_bioinspired320.lib?
opencv_calib3d320.lib?
opencv_ccalib320.lib?
opencv_core320.lib?
opencv_datasets320.lib?
opencv_dnn320.lib?
opencv_dpm320.lib?
opencv_face320.lib?
opencv_features2d320.lib?
opencv_flann320.lib?
opencv_fuzzy320.lib?
opencv_highgui320.lib?
opencv_imgcodecs320.lib?
opencv_imgproc320.lib?
opencv_line_descriptor320.lib?
opencv_ml320.lib?
opencv_objdetect320.lib?
opencv_optflow320.lib?
opencv_phase_unwrapping320.lib?
opencv_photo320.lib?
opencv_plot320.lib?
opencv_reg320.lib?
opencv_rgbd320.lib?
opencv_saliency320.lib?
opencv_shape320.lib?
opencv_stereo320.lib?
opencv_stitching320.lib?
opencv_structured_light320.lib?
opencv_superres320.lib?
opencv_surface_matching320.lib?
opencv_text320.lib?
opencv_tracking320.lib?
opencv_video320.lib?
opencv_videoio320.lib?
opencv_videostab320.lib?
opencv_xfeatures2d320.lib?
opencv_ximgproc320.lib?
opencv_xobjdetect320?.lib?
確定確定應用。?
此時你已配置好了Release|x64的OpenCV+contrib3.2?
重啟一下,試試讀取圖片吧
測試代碼
#include<iostream>
#include<opencv2/opencv.hpp>
int main(int argc,char** argv){
cout<< cv_version<<endl;
Mat src=imread("you own path of pictures");
imshoe("hello world!",src);
waitKey(0);
return 0;
}
在移動工程時偶然發現,該工程居然有101Mb,而這只是讀取一張圖片而已。查看文件夾,合計也才幾mb文件,然后打開了文件管理器的查看,顯示隱藏。?
發現一個隱藏文件夾?
?
查看屬性果然很大,我將隱藏文件夾內的內容刪除,并打開屬性顯示。然后打開工程。發現在加載工程過程中,該隱藏文件夾,不斷增長。然后跑了surf匹配,結果工程變成了180多Mb.?
有些難以置信。以前在VS2013上8個cpp,代碼近萬行的工程才80多mb。目前沒有找到原因,猜測可能是因為:VS2017為加快處理速度的新特性,或者是我在安裝VS時,選擇安裝項不合理導致。?
針對上面只生成三個文件,且沒有x64的,默認為生成的bin文件為64位,最新的vs2017生成庫更簡潔,并不影響使用。其余情況也可以按照這個處理。
總結
以上是生活随笔為你收集整理的VS2017配置OpenCV3.2+contrib3.2的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: qq个性签名韩文
 - 下一篇: 哈利波特魔法觉醒社团活动怎么玩?