1、原料:
- 裝好的win10系統;
- 裝好的VS2015;
- 下載cmake並安裝
鏈接:https://pan.baidu.com/s/1Dr9epaWRz-n34I8QAhxrNA
提取碼:ez6e
複製這段內容後打開百度網盤手機App,操作更方便哦
- opencv官網下載的opencv3.4.4源碼和擴展模塊opencv_contrib-3.4.4(如sift、surf特徵提取等部分在此模塊中)解壓在一個文件夾:
contrib庫:https://github.com/opencv/opencv_contrib/releases
opencv版本:https://opencv.org/releases.html
我下載的:
(https://github.com/opencv/opencv/releases/tag/3.4.4)中的Source code
(https://github.com/opencv/opencv_contrib/releases/tag/3.4.4)中的Source code
2、傻瓜式安裝cmake(注:選好自己所要安裝的路徑(隨意路徑))
3、重點來了:用cmake編譯opencv3.4.4源碼和擴展模塊源碼,然後在VS2015中安裝和配置opencv3.4.4
- 用cmake編譯opencv3.4.4源碼和擴展模塊源碼
雙擊打開cmake,如下圖:在where is the source code中輸入opencv3.4.4源碼的解壓路徑,在where to bulid the binaries 中輸入自己隨意新建的某路徑(編譯後的opencv就在此路徑中),點擊下方的configure,彈出圖3所示(選擇需和圖3同,所選的是64位--僅可用於VS的64位下的Debug和release,32位需選擇相應的選項),點擊finish開始配置環境完成後出現圖4 configuring done。
圖1
圖2圖3
圖4
接下來,需要將擴展模塊opencv_contrib-3.4.4放入其中一起進行編譯,如下圖5,在OPENCV_EXTRA_MODULES_PATH中加入opencv_contrib-3.4.4所在的解壓路徑的modules路徑(我的是D:\ruanjian\opencv\opencv_contrib-3.4.4\modules),並勾選OPENCV_ENABLE_NONFREE(否則擴展模塊中有些功能不能用,具體參考https://blog.csdn.net/zhoukehu_CSDN/article/details/83145026)。設置好後再次點擊左下方的Configure進行配置。
圖6
等到配置好後可看到沒有紅色部分,之後點擊緊挨Configure的Generate按鈕開始編譯生成,等待出現圖7即編譯opencv全部完成完成。
圖7
- 在VS2015中安裝opencv3.4.4
在上一部分編譯生成的路徑中(即在cmake中where to bulid the binaries一欄輸入路徑)出現圖8的OpenCV.sln(可用VS2015打開的工程),用裝好的VS2015打開此文件。
圖8
在解決方案中可以查看工程目錄,在圖9中選擇Debug或者release(看自己),和x64(必須),然後在CMakeTargets中有ALL_BUILD和INSTALL兩項,然後選中ALL_BUILD右鍵可看到重新生成,左鍵點擊重新生成,等待生成完成;之後選中INSTALL右鍵------僅用於項目(J)------左鍵點擊僅生成INSTALL(B),等待安裝完成後即得到可在VS中配置的opencv3.4.4版本(where to bulid the binaries一欄輸入的路徑的install中,我的是D:\ruanjian\opencv\opencv3.4.4_VSx64\install)。
圖9
- 在VS2015中配置上一步得到的opencv(我的是在D:\ruanjian\opencv\opencv3.4.4_VSx64\install中)
(1)右鍵 我的電腦---屬性----高級系統設置----環境變量-----系統變量-----Path-----編輯------新建------輸入上一步得到的opencv的x64\vc14\bin目錄(我的是D:\ruanjian\opencv\opencv3.4.4_VSx64\install\x64\vc14\bin)
(2)在VS中新建工程:文件-----新建-------項目-------win32控制檯項目/MFC項目/..都可。如圖10,找到此項目的屬性管理器,選中Debug | x64(因爲上一步安裝opencv時選擇的是Debug x64)右鍵新建屬性表並隨意命名(我的是PropertySheet_QT_opencv3.4.4_64debug),雙擊此屬性表(此屬性表可在另外新建的工程中調用,這樣就不用反覆配置),出現圖11。
圖10
我們需要在 VC++目錄-----包含目錄 & 庫目錄 及 鏈接器-------輸入 中進行配置,然後確定-----確定------確定。
圖11
VC++目錄-----包含目錄:加入上一部分得到的opencv的include目錄,及include\opencv,和include\opencv2路徑,我的如下:
D:\ruanjian\opencv\opencv3.4.4_VSx64\install\include
D:\ruanjian\opencv\opencv3.4.4_VSx64\install\include\opencv
D:\ruanjian\opencv\opencv3.4.4_VSx64\install\include\opencv2
VC++目錄----- 庫目錄:加入上一部分得到的opencv的x64\vc14\lib目錄,我的如下:
D:\ruanjian\opencv\opencv3.4.4_VSx64\install\x64\vc14\lib
鏈接器-------輸入:加入 VC++目錄----- 庫目錄中路徑下的所有lib文件,我的如下(debug版,release版344後沒有d):
opencv_aruco344d.lib
opencv_bgsegm344d.lib
opencv_bioinspired344d.lib
opencv_calib3d344d.lib
opencv_ccalib344d.lib
opencv_core344d.lib
opencv_datasets344d.lib
opencv_dnn_objdetect344d.lib
opencv_dnn344d.lib
opencv_dpm344d.lib
opencv_face344d.lib
opencv_features2d344d.lib
opencv_flann344d.lib
opencv_fuzzy344d.lib
opencv_hfs344d.lib
opencv_highgui344d.lib
opencv_img_hash344d.lib
opencv_imgcodecs344d.lib
opencv_imgproc344d.lib
opencv_line_descriptor344d.lib
opencv_ml344d.lib
opencv_objdetect344d.lib
opencv_optflow344d.lib
opencv_phase_unwrapping344d.lib
opencv_photo344d.lib
opencv_plot344d.lib
opencv_reg344d.lib
opencv_rgbd344d.lib
opencv_saliency344d.lib
opencv_shape344d.lib
opencv_stereo344d.lib
opencv_stitching344d.lib
opencv_structured_light344d.lib
opencv_superres344d.lib
opencv_surface_matching344d.lib
opencv_text344d.lib
opencv_tracking344d.lib
opencv_video344d.lib
opencv_videoio344d.lib
opencv_videostab344d.lib
opencv_xfeatures2d344d.lib
opencv_ximgproc344d.lib
opencv_xobjdetect344d.lib
opencv_xphoto344d.lib
至此,全部完成。
4、測試
在上一步配置好的工程的Source Files中右鍵 添加---新建項----C++文件(.cpp),然後在此文件中輸入如下內容:
#include<opencv2/opencv.hpp>
using namespace cv;
void main()
{
Mat srcImg=imread("1.jpg");//注意輸入絕對路徑時,要用左斜槓(/),否則出錯
imshow("image",srcImg);//顯示圖像
waitKey(0);//等待任意按鍵按下
}
然後保存,點擊 本地Windows調試器,這樣就可以看到美美的圖片啦 #^-^#
也可嘗試在opencv3.4.4源碼的...\samples\cpp中的一些例子,注意這些例子中的main(int argc,char *argv[],char **env)中的參數,參見下一篇,我們下篇見~
5、注意:
cmake中在配置環境時出現問題,
可參考以下文章:
https://www.cnblogs.com/ilym/p/8626763.html
https://blog.csdn.net/z137628817/article/details/70159043
有關nonfree文件,可參考:
https://blog.csdn.net/zhoukehu_CSDN/article/details/83145026