QT5.10.0搭載OpenCV3.4.0環境配置步驟說明
一、準備工作:
二、軟體安裝
1.qt軟體安裝與配置
①安裝Qt5.10.0,我的安裝路徑:D:\Qt
注意點:在彈出的“選擇元件視窗”中,選擇相關元件(支援QtCreator開發方式如下圖所以,支援VisualStudio開發方式則增加相應的MSVC對應的版本),選擇元件中關於“Strawberry Perl 5.22.1.3”的不勾選(這個元件在非首次安裝時容易報錯且當下學習使用不到),勾選下方工具的MinGw5.3.0設定完畢後,點選“下一步按鈕”進入下一步安裝即可。
②安裝Qt Creator 4.5.0軟體,安裝D:\Qt目錄下,選項預設即可。
③設定環境變數,在系統環境變數path中新增:
D:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin;
D:\Qt\Qt5.10.0\Tools\mingw530_32\bin
2. CMake安裝和配置
預設安裝,不一定非要安裝在C盤,可以放入與QT安裝的目錄下。
注意點:在安裝過程中勾選“為所有使用者新增環境變數”:Add CMake to the system PATH for all users 。
3.opencv安裝
opencv的安裝實際上是解壓,解壓到使用者指定位置,在這裡我的目錄是D:\Qt,這樣安裝路徑統一在同一個資料夾下。
三、Opencv庫的編譯
1.配置CMake編譯條件
①開啟CMake(cmake-gui)。
②選擇OpenCV安裝目錄下的原始碼檔案:D:\Qt\opencv3.40\opencv\sources
③選擇想要編譯輸出目錄檔案路徑,如統一存在統一目錄下,在D:\Qt檔案下新建一個opencvbuild3.40 資料夾,選擇該路徑: D:\Qt\opencvbuild3.40
④點選Configure進行配置。
⑤選擇MinGW Makefiles,勾選Special native compilers然後點選Next
⑥配置編譯器
在下圖1處,C編譯器選擇D:\Qt\Qt5.10.0\Tools\mingw530_32\bin\gcc.exe;
在下圖2處,C++編譯器選擇D:\Qt\Qt5.10.0\Tools\mingw530_32\bin\g++.exe
Fortran不用填寫,然後點選finish。注意:此過程保證網路暢通,因為需要下載幾個檔案。
⑦等待一會兒後,會有一堆紅色出現,勾選WITH_QT和WITH_OPENGL,不能勾選WITH_IPP(預設不勾選),再次點選configure。
注意:若仍有紅色出現,再次點選configure直至紅色消失(有時需要多次,一般情況下兩次即可)。最後,點選Generate按鈕,完成後即可關閉CMake。
2. 編譯
①在編譯之前,在源目錄D:\Qt\opencv3.4.0\opencv\source\cmake\下找到OpenCVCompilerOptions.cmake檔案。
記事本開啟檔案,找到add_extra_compiler_option(-Werror=non-virtual-dtor)
將它註釋掉,前面加#變成:#add_extra_compiler_option(-Werror=non-virtual-dtor)
②然後按住快捷鍵win+R,執行cmd
進入編譯輸出目錄D:\Qt\opencvbuild3.40,然後輸入”mingw32-make“命令. 備註:加速編譯時間可以使用可選參指令” mingw32-make -j 8 “(處理器是i7-3770為8核),
注意點:編譯opencv,此過程時間較長,電腦編譯了一個多小時。
③直到編譯結束。然後輸入命令:mingw32-make install ,大約一到兩分鐘就安裝完成了。
注意點:若編譯期間出現如下錯誤:
錯誤: ... windres.exe: unknown option -- W ...
根據提示依據如下思路解決: in cmake uncheck ENABLE_PRECOMPILED_HEADERS
即:mingw32-make ENABLE_PRECOMPILED_HEADERS -j 8
錯誤:in the file opencv/sources/modules/videoio/src/cap_dshow.cpp, you have the following error : 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared in this scope ...
解決:put the following line: #define NO_DSHOW_STRSAFE, before the line : #include "DShow.h"
即:在D:\Qt\opencv3.4.0\opencv\source\modules\videoio\src\cap_dshow.cpp中,在#include “DShow.h“上一行中插入: #define NO_DSHOW_STRSAFE
四、檔案大小
不同版本的OpenCV編譯安裝後的檔案不同,3.4.0版本編譯後750M
備註:想生成目錄結構到txt檔案,可在cmd中轉到某目錄,輸入tree /f > list.txt
五、使用Qt 載入OpenCV配置
①環境變數新增D:\Qt\opencvbuild3.40\install\x86\mingw\bin
②開啟Qt Creator新建專案(非Qt專案,純C++應用),命名為OpenCV後,開啟OpenCV.pro檔案,新增如下語句:
INCLUDEPATH += D:\Qt\opencvbuild3.40\install\include
LIBS += -L D:\Qt\opencvbuild3.40\install\x86\mingw\bin\libopencv_*.dll
LIBS += -L D:\Qt\opencvbuild3.40\install\x86\mingw\lib\libopencv_*.a
③右擊專案檔案OpenCV資料夾,選擇“執行qmake“編譯後即可。
六、測試示例程式
載入圖片測試程式碼段http://www.pqi7094.cn/http://www.wky2337.cn/
http://www.veo5593.cn/
http://www.lpn9733.cn/
http://www.hxp7546.cn/
http://www.uht8250.cn/
http://www.erg7887.cn/
http://www.zrg4662.cn/
http://www.gmw7502.cn/
http://www.omk7549.cn/
http://www.cck2829.cn/
http://www.ujn9355.cn/
http://www.mgj9519.cn/
http://www.rig2765.cn/
http://www.irw9322.cn/
http://www.psd6888.cn/
http://www.pnl2718.cn/
http://www.com0678.cn/
http://www.oku7898.cn/
http://www.tas9765.cn/
http://www.vgz0064.cn/
http://www.nld6227.cn/
http://www.hco5930.cn/
http://www.oqs1669.cn/
http://www.nny5237.cn/
http://www.tyc6381.cn/
http://www.qmi0117.cn/
http://www.ylz8420.cn/
http://www.vha4867.cn/
http://www.frm7103.cn/
http://www.alo1362.cn/
http://www.phv0172.cn/
http://www.ppb5307.cn/
http://www.nzx0496.cn/
http://www.kwb7023.cn/
http://www.jyr2443.cn/
http://www.dbz8514.cn/
http://www.cok3166.cn/
http://www.rws5532.cn/
http://www.buw8082.cn/
http://www.hce3357.cn/
http://www.pjv6550.cn/
http://www.wlc0063.cn/
http://www.pqp2736.cn/
http://www.apv1822.cn/
http://www.tqr5934.cn/
http://www.goa7029.cn/
http://www.ldt5599.cn/
http://www.kcs8048.cn/
http://www.xyj1895.cn/
http://www.jbk1285.cn/
http://www.oka9409.cn/
http://www.wvc5486.cn/
http://www.uzt4817.cn/
http://www.wuu8371.cn/
http://www.pdi3443.cn/