介紹一下怎麼在 Windows 下使用 Qt 和 OpenCV 3.
系統環境
Windows 7
Qt5.10.0 (編譯器選擇 mingw530_32)
OpenCV 3.3.1 (準備用 mingw 來 build)
Cmake
安裝 Qt 先從官網下載 Qt, 目前最新為5.10 , 安裝好之後 並把 Qt dll 路徑加進系統環境變數裡 (這步很重要, 因為要用它來編譯OpenCV)1 2 C:\Qt\Qt5.10.0\5.10.0\mingw53_32\bin C:\Qt\Qt5.10.0\Tools\mingw530_32\bin
編譯 OpenCV (使用 MinGW 編譯) 從官網下載 OpenCV 並解開, 執行下列指令1 2 3 4 cd opencv-3.3.1 mkdir build cd build cmake-gui.exe ..
在make-gui上按照下方流程進行1 2 3 選擇 MinGW Makefiles 選擇 Use default native compilers 再按 Finish
按 Configure 會報錯說沒設定 CMAKE_CXX_COMPILER
跟 CMAKE_C_COMPILER
不管它再按一下 Configure 他會自動找到1 2 勾選 WITH_OPENGL 勾選 WITH_QT
再按一下 Configure, 再按 Generate 接下來就可以開始編譯與安裝1 2 mingw32-make -j8 mingw32-make install
把 OpenCV dll 目錄加進系統環境變數裡 (這步很重要, 否則執行期間會找不到dll)1 C:\opencv\build\x86\mingw
之後在 Qt 專案檔 .pro 加入下列變數1 2 3 4 5 6 7 8 INCLUDEPATH += C:\opencv\build\include LIBS += -LC:\opencv\build\x86\vc14\lib \ -lopencv_core331 \ -lopencv_highgui331 \ -lopencv_imgcodecs331 \ -lopencv_imgproc331 \ -lopencv_features2d331 \ -lopencv_calib3d331
搞定結束!
疑難雜症 Q. 遇到 windres.exe: unknown option -- W
編譯錯誤怎辦? A. cmake 取消勾選 ENABLE_PRECOMPILED_HEADERS
Q. 遇到 modules/videoio/src/cap_dshow.cpp error: 'sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA' was not declared in this scope
編譯錯誤怎辦? A. 編輯 opencv-3.3.1/modules/videoio/src/cap_dshow.cpp
在 #include "DShow.h"
前面加入 #define NO_DSHOW_STRSAFE
定義
參考文章https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows https://ricky.moe/2017/06/17/qt5-6-2-opencv3-1-integration/
其它相關文章推薦 [Qt] 讀檔,讀取 txt 文字檔 [Qt] 寫檔,寫入 txt 文字檔 安裝 Qt 在 Windows 7 (使用MSVC) Qt產生的exe發布方式 Qt 新增多國語言.ts翻譯檔案 Qt5的中文亂碼問題如何解決