1. 程式人生 > >WIN7+OpenCV3.3+QT5.9.1+Cmake3.9.1+VisualStudio2015環境配置經驗分享

WIN7+OpenCV3.3+QT5.9.1+Cmake3.9.1+VisualStudio2015環境配置經驗分享

0、寫在前面

最近在學習Opencv的知識,作為影象處理的小學生,光是配置這個環境就浪費了不少時間,寫在這裡是為了讓他人少走彎路。好了,廢話不說了,直接講配置過程。

1、準備基本軟體環境

系統:win7 64bit。

VisualStudio2015:https://www.visualstudio.com/zh-hans/downloads/

2、安裝上面的這些軟體

OpenCV3.3這個最簡單,只需解壓到你想放在的目錄即可,然後配置一下系統環境變數path,這個不會配置的可以百度一下,很多教程的。這裡說一下我的路徑:D:\OpenCV\build\x64\vc14\lib


QT5.9.1的安裝:可以下載圖中的版本,安裝時選擇msvs2015的選項包即可:其他步驟很簡單!


Cmake3.9.1的安裝路徑不要有中文和空格,防止出現錯誤!

Cmake的安裝也比較簡單,下載完安裝檔案之後,一路next即可。
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述
安裝過程大概2分鐘左右,很快。 
這裡寫圖片描述
這裡寫圖片描述

VisualStudio2015安裝這裡不詳細說明了!讀者可以自行百度!

3、使用Cmake編譯OpenCV庫

1.開啟Cmake 
1)填寫OpenCV3.1的原始碼目錄; 
2)生成目錄(建議根目錄,方便以後使用); 
3)點選配置;


配置編譯器,這裡使用VS2015 64位編譯器,預設選擇即可。點選Finish開始配置。



這裡勾選一下點選紅色區域的WITH,勾選WITH_QT 和 WITH_OPENGL,然後再次configure。 


如果出現錯誤,一般是路徑不對,可以自己手動新增的,然後再次configure,直到所有的錯誤消失出現

然後點選Generate


此時編譯器以及環境配置已經完成,下一步開始生成。 

4、使用msvs2015編譯庫

開啟目標資料夾的工程


然後進行執行編譯,每次大概20分鐘。這是編譯後的結果:分別Debug和Release

這裡寫圖片描述

但這裡面並不全是我們所需的檔案,在生成的OpenCV目錄裡,只保留bin和lib就行了,其餘都可以刪除。

然後再把我們前面解壓的OpenCV3.3的build檔案中包含的include複製過來,就構成了我們所需的全部OpenCV檔案。 


我們再為自己編譯的OpenCV配置一下環境,以便以後的使用,在系統環境變數PATH中新增:


D:\opencvbuild\bin\Release;

D:\opencvbuild\bin\Debug;

D:\OpenCV\build\x64\vc14\bin;

5、在QT中配置OpenCV環境

新建一個Qt Application工程,在pro檔案中新增 :

INCLUDEPATH+=D:\opencvbuild\include\opencv2
INCLUDEPATH+=D:\opencvbuild\include\opencv
INCLUDEPATH+=D:\opencvbuild\include
LIBS+=-LD:\opencvbuild\lib\Debug\
-lopencv_calib3d330d\
-lopencv_core330d\
-lopencv_dnn330d\
-lopencv_features2d330d\
-lopencv_flann330d\
-lopencv_highgui330d\
-lopencv_imgcodecs330d\
-lopencv_imgproc330d\
-lopencv_ml330d\
-lopencv_objdetect330d\
-lopencv_photo330d\
-lopencv_shape330d\
-lopencv_stitching330d\
-lopencv_superres330d\
-lopencv_ts330d\
-lopencv_video330d\
-lopencv_videoio330d\
-lopencv_videostab330d

然後main.cpp裡:

#include<opencv2/opencv.hpp>
#include<iostream>
#include<cstdlib>
usingnamespacecv;
usingnamespacestd;
intmain()
{
Matsrc=imread("D:\\111.jpg",1);
if(src.empty()){
cout<<"ERROR:Cannotopenthefigure!"<<endl;
exit(-1);
}
namedWindow("Test",WINDOW_AUTOSIZE);
imshow("Test",src);
waitKey(0);
destroyAllWindows();
return0;
}

最後結果:

寫在最後:其他可以參考連結

http://blog.csdn.net/cv_jason/article/details/53078554

http://blog.csdn.net/jieyanzhe3873/article/details/73775620

http://blog.csdn.net/abcvincent/article/details/68486522