win10-x64 + Qt5.13 + OpenCV3.4.6-x64 環境搭建shell
cmake:cmake-3.15.0-rc3-win64-x64測試
準備:安裝Qt(加MingGW64位編譯器)+ 安裝OpenCV(64位)+ 安裝cmake-x64
添加環境變量:
D:\Qt\Qt5.13.0\5.13.0\mingw73_64\bin
D:\Qt\Qt5.13.0\Tools\mingw730_64\bin
D:\OpenCV\build\x64\vc15\bin
D:\cmake-3.15.0-rc3-win64-x64\bin
D:\opencv3.4.6-build\install\x64\mingw\binui
注意:安裝OpenCV時解壓路徑,(重要的事情說三遍<我本身就掉進這個坑裏,苦悶了兩天>)
*****opencv所在的文件夾名必定不能有空格***** 譬如:「Program files」
*****opencv所在的文件夾名必定不能有空格*****
*****opencv所在的文件夾名必定不能有空格*****this
1.運行cmake文件夾bin中gui開始配置
where is the source code中填入OpenCV的源碼路徑
where to build the binaries中填入編譯後生成文件的存放位置D:\opencv3.4.6-build(可本身新建一個文件夾)
Advanced勾選spa
點擊下方的Configure按鈕,會彈出配置框
Specify the generator for this project下拉框中選擇MinGW Makefiles,而後圈選Specify native comilers,點擊Next
以後會讓選擇MinGW的C/C++編譯器位置,填入對應編譯器位置(在Qt編譯器中確認,通常在Qt安裝目錄中Tools文件夾內),
Fortran不用填寫,配置完後點擊Finsh,進行配置驗證。線程
而後會出現一系列紅色的value
勾選:WITH_QT、WITH_OPENGL
基於編譯中出現的問題,直接一次性不勾選:WITH_IPP ENABLE_PRECOMPILED_HEADERS WITH_OPENCL_D3D11_NV
而後從新 Configure,直到紅色選項消失,Generatecode
2.編譯前:opencv\cmake\下找到「OpenCVCompilerOption.cmake」,打開註釋掉#add_extra_compiler_option(-Werror=non-virtual-dtor)blog
3.編譯:在D:\opencv3.4.6-build目錄下,shift+右鍵打開shell,執行指令mingw32-make -j 8(8線程快速編譯)ci
4.安裝mingw32-make:編譯完成後執行指令mingw32-make installget
5.Qt中配置OpenCV:新建或打開工程,在pro文件中添加以下兩語句,一個是編譯後的頭文件夾,一個是靜態庫,一個是動態庫,兩個庫選一個使用
注意:LIBS += -L的後面必定要加‘\’(不然編譯報錯)
INCLUDEPATH += D:\opencv3.4.6-build\install\include
LIBS += -L \
#D:\opencv3.4.6-build\install\x64\mingw\lib\libopencv_*.a
D:\opencv3.4.6-build\install\x64\mingw\bin\libopencv_*.dll
工程上右鍵執行qmake,編譯經過便可。
6.測試CPP代碼:
#include "mainwindow.h" #include "ui_mainwindow.h" #include <opencv2/opencv.hpp> using namespace cv; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); Mat srcImg = imread("D:\\_Diagonal.jpg"); imshow("1",srcImg); } MainWindow::~MainWindow() { delete ui; }