Win10+QT5.7.1搭建opencv開發環境


一、准備工作:

1下載Qt5.7.1軟件qt-opensource-windows-x86-mingw530-5.7.1.exe(http://download.qt.io/official_releases/qt/5.7/5.7.1/)

2.下載opencv3.1 OpenCV for Windows(http://opencv.org/downloads.html)

3.下載Cmake3.7.2 cmake-3.7.2-win64-x64.msi(https://cmake.org/download/)

 二、軟件安裝

1.qt軟件安裝與配置

默認安裝即可,然后設置環境變量,在系統環境變量path中添加:

C:\Qt\Qt5.7.1\5.7\mingw53_32\bin;C:\Qt\Qt5.7.1\5.7\mingw53_32\bin

2.CMake安裝和配置

默認安裝,注意在安裝過程中勾選“為所有用戶添加環境變量”:Add CMake to the system PATH for all users 。

3.opencv安裝

opencv的安裝實際上是解壓,解壓到用戶指定位置,在這里我的目錄是D:\Program Files\opencv

三、opencv庫的編譯

1.配置CMake編譯條件

打開CMake(cmake-gui)。

在下圖中1處,選擇源碼目錄,如:D:/Program Files/opencv/sources 。

在下圖中2處,選擇編譯輸出目錄,如 D:/Program Files/opencv/mingw530 。

然后點擊3處Configure,進行配置

在下圖中1處,選擇MinGW Makefiles;在圖中2處選擇,Special native compilers;然后點擊Next

配置編譯器,在下圖1處,C編譯器選擇C:\Qt\Qt5.7.1\Tools\mingw530_32\bin\gcc.exe;

在下圖2處,C++編譯器選擇C:\Qt\Qt5.7.1\Tools\mingw530_32\bin\g++.exe

Fortran不用填寫,然后點擊finish。注意:此過程保證網絡暢通,因為需要下載幾個文件。

等待一會兒后,會有一堆紅色出現,勾選WITH_QTWITH_OPENGL不能勾選WITH_IPP(默認不勾選),再次點擊configure。

若仍有紅色出現,再次點擊configure直至紅色消失。最后,點擊Generate按鈕,完成后即可關閉CMake。

2.編譯

在編譯之前,在目錄D:\Program Files\opencv-3.1.0\cmake\下找到OpenCVCompilerOptions.cmake文件。

打開文件,找到add_extra_compiler_option(-Werror=non-virtual-dtor)

將它注釋掉,變成:

#add_extra_compiler_option(-Werror=non-virtual-dtor)

然后按住快捷鍵win+R,運行cmd

進入編譯輸出目錄 D:\Program Files\opencv\mingw530(也可以,按住shift同時右鍵,點擊“在此處打開命令窗口”。)

然后輸入:mingw32-make命令,編譯opencv,此過程時間較長,電腦編譯了一個多小時。 

直到編譯結束。然后輸入命令:mingw32-make install ,大約一到兩分鍾就安裝完成了。

四、精簡編譯后的opencv庫文件

編譯完成后會發現目標文件夾有一個多G大小,無需擔心,我們只需要其中的一部分。

網上很多教程都說要:[保留“bin”、“lib”文件夾,再將原始OpenCV庫中的“include”拷貝過來]。這里與其他教程不同的是,我建議只保留 install 文件夾,其他都可以刪除。

詳細解釋如下;觀察install目錄結構:

fig5

小技巧:想生成目錄結構到txt文件,可在cmd中轉到某目錄,輸入tree /f > list.txt

其中,etc中包含兩類已經訓練好的分類器,分為Haar特征和LBP特征,可以用在人臉識別等程序中;include中是需要的頭文件;x86/mingw中則包含bin和lib兩個文件夾,其中分別是動態鏈接庫和靜態鏈接庫。因此install中已經包含了所有需要的文件。

而install/x86/mingw中的bin和lib與上層目錄中的bin和lib有什么區別呢?觀察可以發現,install中的bin和lib中少了很多文件名中有“pref”和“test”的文件,這些文件實際上是不需要的。因此只保留install文件夾是最不浪費空間的做法。

刪除其他無用的文件夾后,我們所需的庫文件只有62.3 MB,壓縮一下只有14 MB,這已經很小了。我將制作好的庫文件上傳到了雲盤中,需要的話可以在最下方下載。

五.Qt Creator 中工程文件的配置

首先將編譯好的庫添加進環境變量,如 D:\opencv_mingw530\install\x86\mingw\bin ,如不添加則會出現程序編譯通過但運行時提示“程序異常結束”的問題。

小提示:每次添加或刪除環境變量后,都要重啟Qt Creator才能生效。

打開Qt Creator,新建工程或者在已有工程文件中打開.pro文件,添加包含頭文件的語句:

INCLUDEPATH += D:\opencv_mingw530\install\include

接下來,如果你想使用動態鏈接庫,則再添加:

LIBS += -L D:\opencv_mingw530\install\x86\mingw\bin\libopencv_*.dll

而如果你想使用靜態連接庫,則要添加:

LIBS += -L D:\opencv_mingw\install\x86\mingw\lib\libopencv_*.a

這里都是使用了“*”包含了所有的鏈接庫,如果想只用一部分則可以這樣輸入:

LIBS += -L D:\opencv_mingw530\install\x86\mingw\bin\libopencv_calib3d320.dll \ libopencv_core320.dll \ ...

小提示:帶空格的庫路徑是不能直接使用的,需要按如下格式輸入:

INCLUDEPATH += \$\$quote(D:\opencv_mingw530\install\include)

LIBS += -L \$\$quote(D:\opencv_mingw530\install\x86\mingw\bin\libopencv_*.dll)

在工程上右鍵點擊執行QMake 。

qmake

之后進行正常的編譯運行即可。

6. 示例程序

網絡上的教程到最后示例程序這一步時,很多都是將Qt的原有結構刪除,直接給一個opencv的簡單程序就完事兒,一般都是顯示一張圖片。

我這里高級一點,給一個調用攝像頭並顯示圖像的簡單示例。這個程序摘自毛星雲(淺墨)的《OpenCV3編程入門》。

#include <opencv2/opencv.hpp> using namespace cv; int main() { //【1】從攝像頭讀入視頻 VideoCapture capture(0); //【2】循環顯示每一幀 while(1){ Mat frame; //定義一個Mat變量,用於存儲每一幀的圖像 capture>>frame; //讀取當前幀 imshow("video",frame); //顯示當前幀 waitKey(30); //延時30ms } return 0; }

 

 

主要參考博客:http://www.cnblogs.com/howlclat/p/6433097.html

http://blog.sina.com.cn/s/blog_92bfe91b0102vvvn.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM