詳解QT5.10.0搭載OpenCV3.4.0環境配置步驟說明


一、准備工作:

  1下載Qt5.10.0 和 Qt Creator 4.5.0軟件(http://download.qt.io/official_releases/qt/

  2.下載opencv3.40 (https://opencv.org/releases.html)

  3.下載Cmake3.10.1 (https://cmake.org/download/

二、軟件安裝

  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

    即:即在3.1.7步驟中Cmake勾選勾選WITH_QT和WITH_OPENGL時候將ENABLE_PRECOMPILED_HEADERS勾選去除,重新configure 並重新編譯;

    http://answers.opencv.org/question/168538/building-opencv-with-mingw-gcc-710-and-cmake-390-windresexe-unknown-option-w/

    錯誤: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

    備注:參考地址:https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows

四、文件大小

  不同版本的OpenCV編譯安裝后的文件不同,3.4.0版本編譯后750M

  使用2.4.13.3版本文件有1.98G。若需要裁剪傾向請參考如下博文:https://www.cnblogs.com/TooyLee/p/6438070.html

  備注:想生成目錄結構到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“編譯后即可。

六、測試示例程序 

 1 #include <iostream>
 2 #include <opencv2/core/core.hpp>
 3 #include <opencv2/highgui/highgui.hpp>
 4 using namespace cv;
 5 using namespace std;
 6 int main()
 7 {
 8     cv::Mat image;
 9     std::cout << "This image is " << image.rows << " x " << image.cols << std::endl;
10     //絕對路徑+圖片名稱
11     image = cv::imread("E:\\QT Project\\OpenCV\\rose.png");
12     if (image.empty())
13     {
14         std::cout << "Can’t loading images. " << std::endl;
15      return -1;
16     }
17     cv::namedWindow("Original Image");
18     cv::imshow("Original Image", image);
19     cv::waitKey(0);
20     return 0;
21 }
加載圖片測試代碼段

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM