1. 程式人生 > >QT5.10.0搭載OpenCV3.4.0環境配置步驟說明

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

一、準備工作:

二、軟體安裝

  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

    即:mingw32-make ENABLE_PRECOMPILED_HEADERS -j 8

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

四、檔案大小

  不同版本的OpenCV編譯安裝後的檔案不同,3.4.0版本編譯後750M

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

六、測試示例程式

 載入圖片測試程式碼段

http://www.pqi7094.cn/
http://www.wky2337.cn/
http://www.veo5593.cn/
http://www.lpn9733.cn/
http://www.hxp7546.cn/
http://www.uht8250.cn/
http://www.erg7887.cn/
http://www.zrg4662.cn/
http://www.gmw7502.cn/
http://www.omk7549.cn/
http://www.cck2829.cn/
http://www.ujn9355.cn/
http://www.mgj9519.cn/
http://www.rig2765.cn/
http://www.irw9322.cn/
http://www.psd6888.cn/
http://www.pnl2718.cn/
http://www.com0678.cn/
http://www.oku7898.cn/
http://www.tas9765.cn/
http://www.vgz0064.cn/
http://www.nld6227.cn/
http://www.hco5930.cn/
http://www.oqs1669.cn/
http://www.nny5237.cn/
http://www.tyc6381.cn/
http://www.qmi0117.cn/
http://www.ylz8420.cn/
http://www.vha4867.cn/
http://www.frm7103.cn/
http://www.alo1362.cn/
http://www.phv0172.cn/
http://www.ppb5307.cn/
http://www.nzx0496.cn/
http://www.kwb7023.cn/
http://www.jyr2443.cn/
http://www.dbz8514.cn/
http://www.cok3166.cn/
http://www.rws5532.cn/
http://www.buw8082.cn/
http://www.hce3357.cn/
http://www.pjv6550.cn/
http://www.wlc0063.cn/
http://www.pqp2736.cn/
http://www.apv1822.cn/
http://www.tqr5934.cn/
http://www.goa7029.cn/
http://www.ldt5599.cn/
http://www.kcs8048.cn/
http://www.xyj1895.cn/
http://www.jbk1285.cn/
http://www.oka9409.cn/
http://www.wvc5486.cn/
http://www.uzt4817.cn/
http://www.wuu8371.cn/
http://www.pdi3443.cn/