介紹一下怎麼在 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
2C:\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
4cd 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
2mingw32-make -j8
mingw32-make install
把 OpenCV dll 目錄加進系統環境變數裡 (這步很重要, 否則執行期間會找不到dll)1
C:\opencv\build\x86\mingw
之後在 Qt 專案檔 .pro 加入下列變數1
2
3
4
5
6
7
8INCLUDEPATH += 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的中文亂碼問題如何解決