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

0、寫在前面

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

1、準備基本軟件環境

系統:win7 64bit。

OpenCV3.3   OpenCV下載地址:http://opencv.org/downloads.html

QT5.9.1:Qt Creator下載地址:https://www.qt.io/download-open-source/

Cmake3.9.1:Cmake下載地址:https://cmake.org/download/ (推薦下最新版msi安裝文件)

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>
using namespace cv;
using namespace std;
int main()
{
    Mat src = imread("D:\\111.jpg",1);
    if(src.empty()){
        cout<<"ERROR:Cannot open the figure!"<<endl;
        exit(-1);
    }
    namedWindow("Test",WINDOW_AUTOSIZE);
    imshow("Test",src);
    waitKey(0);
    destroyAllWindows();
    return 0;
}

最後結果:

寫在最後:其他可以參考鏈接

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