win10配置QT5.11.1+CMake3.10.3+Opencv3.4.1到執行第一張圖片(執行部分比較詳細,別的略寫)
找到幾個好用的視訊教程:
Windows平臺下基於QT和OpenCV搭建影象處理平臺
http://edu.51cto.com/center/course/lesson/index?id=222156
實戰微課-5分鐘配置好OpenCV3.2 + VS2015開發環境
http://edu.51cto.com/course/10297.html?source=so
以下是我的正文:
花了三天終於搞定...
核心參考文件是官網的文件:
https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows
本文只對該文件作為補充說明。
QT我下載的是清華大學映象版本,因為官網的下載慢,時不時報錯需要手動重建,比較煩
https://mirrors.tuna.tsinghua.edu.cn/
QT安裝教程這個比較好
https://www.cnblogs.com/chenmingjun/p/8392713.html
剩下的OpenCV,cmake的安裝參考官網檔案
-----------之後就是絕望的配置過程,呵呵呵---------
首先必然出現的錯誤
第三方/ ffmpeg / ffmpeg.cmake中的CMake錯誤:2(包括):包含不能......
其他大神的解決方案:
https://blog.csdn.net/u011028345/article/details/74568109
https://blog.csdn.net/z137628817/article/details/70159043
我......都用不了.....
我的解決方案:開個藍燈,雖然無比卡,但是......最簡單...
這裡把我的的ffmpeg的和ippicv傳上來好了:
https://pan.baidu.com/s/1yebQgv8x-s4aGCZRQEO7_Q密碼:qpky
之後到這一步
巨多雷區....呵呵呵,具體參考這篇文章:HTTPS://blog.csdn.net/huihut/article/details/78701814
請讓我吐槽一下,知道這些問題會出現,出現每次還要之後重新Configure
- Generate
-mingw32-make,那為啥不在這一步解決掉這些問題???
我編輯這一步避雷操作的整理版如下:
修改E:\OpenCV_3.3.1\opencv\sources\modules\videoio\src\cap_dshow.cpp
檔案,在#include "DShow.h"
這行的上面加一行#define NO_DSHOW_STRSAFE
,如:
#define NO_DSHOW_STRSAFE
#include "DShow.h"
編譯配置:
- 勾選
WITH_QT
- 勾選
WITH_OPENGL
- 勾選
ENABLE_CXX11
- 不勾選
WITH_IPP
- 不勾選
ENABLE_PRECOMPILED_HEADERS
點選配置,再次配置:
- 設定
QT_MAKE_EXECUTABLE
為E:\Qt\Qt5.9.3\5.9.3\mingw53_32\bin\qmake.exe
- 設定
Qt5Concurrent_DIR
為E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Concurrent
- 設定
Qt5Core_DIR
為E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Core
- 設定
Qt5Gui_DIR
為E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Gui
- 設定
Qt5Test_DIR
為E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Test
- 設定
Qt5Widgets_DIR
為E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5Widgets
- 設定
Qt5OpenGL_DIR
為E:\Qt\Qt5.9.3\5.9.3\mingw53_32\lib\cmake\Qt5OpenGL
- 設定
CMAKE_BUILD_TYPE
為Release
或者RelWithDebInfo
點選生成生成的Makefile
編譯的OpenCV
開啟終端進行編譯(開始-執行--cmd):( -j
的英文使用 8
個執行緒進行編譯,請根據你的計算機配置合理設定執行緒數)
d:
cd d:\
cd opencv-build
mingw32-make -j 8
mingw32-make install
檢視電腦執行緒數的方法:HTTPS://blog.csdn.net/huazicomeon/article/details/53540852票= ST-353326-Zz4Ha9YGwLDmFeRdVur7-passport.csdn.net
然而我用4執行緒還錯,算了,就一個執行緒吧......慢就慢點,跪求不錯,我用的程式碼如下:
d:
cd d:\
cd opencv-build
mingw32-make -j
上一段直接複製,執行完了再輸入這個
mingw32-make install
全部執行結束後新增系統變數(我的電腦右鍵 - 屬性 - 高階系統設定 - 環境變數 - 系統變數--path--編輯)
新增這一條,其餘與QT相關環境變數是否配齊參考下圖
開啟QT creator,新建專案
除了這個,其他都直接選擇下一步
然後配置環境,工具 - 選項
修改如下:
應用 - 確定
之後編輯程式:程式參考https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows
首先修改的.pro檔案,把以下程式碼新增到.pro檔案的最後:
INCLUDEPATH + = D:\ opencv \ build \ include
LIBS + = D:\ opencv-build \ bin \ libopencv_core341.dll
LIBS + = D:\ opencv-build \ bin \ libopencv_highgui341.dll
LIBS + = D:\ opencv-build \ bin \ libopencv_imgcodecs341.dll
LIBS + = D:\ opencv-build \ bin \ libopencv_imgproc341.dll
LIBS + = D:\ opencv-build \ bin \ libopencv_features2d341.dll
LIBS + = D:\ opencv-build \ bin \ libopencv_calib3d341.dll
這裡要很注意路徑,
INCLUDEPATH 給出的路徑,資料夾包括要包含以下資料夾
之後修改mainwindow.cpp,直接用下面的程式碼替換,注意在˚F盤裡放一張圖片:1.JPG
#include “mainwindow.h”
#include “ui_mainwindow.h”
#include <opencv2 / highgui / highgui.hpp>
QMainWindow(父母),
ui(新的Ui :: MainWindow)
{
ui - > setupUi(this);
cv :: Mat image = cv :: imread(“f://1.jpg”,1);
cv :: namedWindow(“我的形象”);
cv :: imshow(“我的圖片”,圖片);
}
MainWindow :: 〜MainWindow()
{
刪除使用者介面 ;
}
執行結果如下: