Qt5.12.2+Opencv4.2配置動態連結庫以用Qt調用Opencv進行創作

2020-12-11 程序客

一、軟體準備

1、QT: 5.12

2、Opencv 4.2

3、CMAKE 3.17

二、軟體安裝及環境變量配置

1、Qt creator安裝

(1)Qt安裝

本教程針對之前下載的Qt 5.12.2進行安裝演示

l 點擊下載好的qt-opensource-windows-x86-5.12.2.exe,出現如下頁面,點擊Next

l 此時需要提供你的Qt帳號,註冊一下登陸即可。再點擊Next

l 然後點擊下一步

l 選擇安裝文件夾,默認為C盤,由於文件太大建議安裝到其他盤,選擇好安裝路徑後點擊下一步

l 選擇如下組件:Qt5.12.2中的MinGW7.3.0 32-bitMinGW7.3.0 32-bit,選擇Developer and Designer中的Qt Creator 4.8.2 CDBMinGW7.3.0 32-bitMinGW7.3.0 32-bit。之後點擊下一步

l 同意許可,點擊下一步

l 點擊安裝,安裝完成後點擊完成

(2)然後進行Qt的環境變量設置

下面是對Mingw32-make.exe編譯器和Mingw64-make.exe編譯器的環境變量配置方法

l 在收索中輸入系統環境變量,打開編輯系統環境變量,選擇高級,點擊環境變量

將你的Qt安裝目錄中5.12.2文件夾下的mingw73_32中的bin文件夾路徑添加到系統環境變量中,然後將Qt安裝目錄中Tools文件夾下對應的mingw73_32中的bin文件夾路徑添加到系統環境變量中,至此Mingw32編譯器的環境變量配置就完成了。Mingw64編譯器環境變量配置方法同理。配置好後如下圖所示:

圖中E:\Mysoftware\Qt5.12.22是我的Qt安裝目錄

所有都配置好以後Qt就可以使用了!

2、Cmake安裝

l 點擊Cmake安裝文件彈出如下界面,點擊Next

l 如下圖,勾選同意條款,點擊Next

l 選擇Add cmake to the system path for all user,點擊Next

l 選擇安裝路徑後點擊Next

l 點擊Install開始安裝

3、Opencv的下載和安裝

(1)Opencv庫的下載

l 選擇下載opencv4.2版本的sources文件

(2)Opencv sources文件解壓

l 然後點擊下載好的opencv-4.2.0-vc14_vc15文件將opencv4.2的資源文件解壓到你指定的安裝路徑中,得到如下圖所示文件夾內容:

我的安裝路徑為E:\Mysoftware\opencv,同時在與sources文件夾同級目錄中新建文件夾,如Qt_build2

三、Qt+Opencv動態連結庫的建立

l 首先打開安裝好的CMake軟體,將之前opencv的sources文件夾的路徑添加到Where is the sources code後對話框中,然後上一步中新建的Qt_build2文件夾路徑添加到Where to bulid the binaries後的對話框中,然後點擊Configure,如下圖所示:

我的sources路徑是:E:\Mysoftware\opencv\sources

我的Qt_build2文件夾路徑是:E:\Mysoftware\opencv\Qt_build2

l 在彈出框中選擇MinGW Makefile,選擇Specify native compilers,點擊Next,如下圖所示:

l 在彈出框中分別選擇C和C++對應的Mingw64編譯器對應的gcc.exe和g++.exe文件路徑,點擊Finish

我的路徑如下:

C對應E:/Mysoftware/Qt5.12.22/Tools/mingw730_32/bin/gcc.exe

C++對應E:/Mysoftware/Qt5.12.22/Tools/mingw730_32/bin/g++.exe

l 當對話框中出現Configuring done之後,會出現一大片紅的,暫時不用管,下拉將WITH_OPENGLWITH_QT選中,然後再次點擊Configure

l 此時仍會有紅色出現,如下圖所示,

l 將紅色區域中的Value地址路徑改為你的Qt安裝路徑下對應的Qt5Concurrent、Qt5Core、Qt5Gui、Qt5Test、Qt5WidgetsQt5,我的文件路徑如下所示,請參考:

E:/Mysoftware/Qt5.12.22/5.12.2/mingw73_32/lib/cmake/Qt5Concurrent

E:/Mysoftware/Qt5.12.22/5.12.2/mingw73_32/lib/cmake/Qt5Core

E:/Mysoftware/Qt5.12.22/5.12.2/mingw73_32/lib/cmake/Qt5Gui

E:/Mysoftware/Qt5.12.22/5.12.2/mingw73_32/lib/cmake/Qt5OpenGL

E:/Mysoftware/Qt5.12.22/5.12.2/mingw73_32/lib/cmake/Qt5Test

E:/Mysoftware/Qt5.12.22/5.12.2/mingw73_32/lib/cmake/Qt5Widgets

E:/Mysoftware/Qt5.12.22/5.12.2/mingw73_32/lib/cmake/Qt5

l 修改後如下所示,再次點擊Configure

l 此時紅色消失,在下拉框中找到CMAKE_BUILD_TYPE選擇Release類型,再次點擊Configure

l 若沒有報錯,點擊Generate,Generating done之後,關閉Cmake即可,然後進入之前我們新建的Qt_build2文件夾中可以看到生成的文件

l 將滑鼠放在該文件夾界面內,按住shift鍵,同時點擊滑鼠右鍵,對話框中點擊在此處打開Powershell窗口(s),進入Windows Powershell,輸入下面指令並回車

mingw32-make -j 8

(註:-j8是Cpu多線程處理任務命令,可以加快編譯速度,我的Cpu是四核八線程的,所示是-j8)

l 按回車鍵執行該命令,這裡要進行一段時間,耐心等待。。。100%完成之後,輸入下面指令並回車:

mingw32-make install

l 完成之後退出,另外再將如下圖所示文件夾得路徑按照前述方式加入環境變量即可。(即之前新建得用於存放編譯Opencv sources文件得文件夾)

我的路徑是:E:\Mysoftware\opencv\Qt_build2\install\x64\mingw\bin

l 至此,完成Qt+Opencv動態連結庫的建立!

四、Qt+opencv動態連接庫測試——用Qt調用opencv顯示圖片

l 打開Qt,點擊Projects,點擊New Project新建工程

l 默認使用Qt Widgets Application模板,直接點右下方Choose

l 如圖所示創建路徑項目名稱,點擊下一步

l 選擇mingw 32-bit,點擊下一步

l 全部默認,點擊下一步

l 點擊完成

l 在test.pro中添加如下代碼,位置如下圖所示

INCLUDEPATH += E:\opencv-4.0.1-Sources\opencv-build\install\include

LIBS += E:\opencv-4.0.1-Sources\opencv-build\lib\libopencv_*.a

l 在mainwindow.cpp中紅框位置加上如下代碼,位置如下圖所示

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

Mat image=imread("G:\\Qt\\Qt+opencv_test\\test\\123.jpg",1);

namedWindow( "Display window", WINDOW_AUTOSIZE );

imshow( "Display window", image );

代碼中G:\\Qt\\Qt+opencv_test\\test\\123.jpg是所要顯示得圖片路徑,(切記!圖片的路徑不能是C盤路徑)而且所用圖片尺寸不能太大否則結果會顯示不正常,程序中會出現紅色警告提示,不用擔心,在下一步中會恢復正常

l 選擇菜單欄中得構建執行qmake之後紅色消失

l 運行test.pro文件,輸出結果示例如下,若正常輸出則說明你的Qt已經可以調用opencv庫了

相關焦點

  • Ubuntu16.04 配置OpenCV3.4.2及基本使用
    OpenCV用C++語言編寫,它的主要接口也是C++語言,但是依然保留了大量的C語言接口。該庫也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。這些語言的API接口函數可以通過在線文檔獲得。如今也提供對於C#、Ch、Ruby,GO的支持。所有新的開發和算法都是用C++接口。
  • QT攝像頭調用(為OpenCV人臉識別做鋪墊)--- Qt(五)
    然而,大多數工作都是在調用setCamera()函數時完成的,並傳入QByteArray。【看來qt/VS也是設置『0』,才啟用。調用setCamera完成相關設置,這點和串口setpost一樣】問題來了?一個漢字多少字節?
  • OpenCV ffmpeg移植到ARM平臺
    前一篇寫了如何在移植OpenCV庫到ARM平臺上,本來我只是用到OpenCV的打開USB攝像頭獲取圖像到IplImage結構中,這用到了V4L2的底層函數。然後進行視頻圖像的幀處理。那麼如何用OpenCV讀寫ARM板上的視頻文件,並進行視頻處理呢?這該又將如何移植呢?
  • 【走進OpenCV】學習Opencv不得不掌握的操作
    庫,涉及到的知識點會做簡單講解。圖像初始化操作#include<opencv2\opencv.hpp>   #include<opencv2\highgui\highgui.hpp>using namespace std;using namespace cv;int main(int argc, char** argv){
  • Ubuntu 16.04中安裝OpenCV 2.4.11
    build-essential cmake libgtk2.0-dev pkg-config python-dev python-numpy libavcodec-dev libavformat-dev libswscale-dev 2 去管網下載opencv壓縮包3 解壓壓縮包到某文件夾(用windows習慣了,直接右鍵提取到此處。。。)
  • 如何快速簡單的安裝opencv-python
    -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python這樣就會從清華鏡像安裝opencv-contrib-python庫。Win10環境下操作步驟:按下Win+R ,輸入cmd 回車 ,輸入pip install opencv-contrib-python回車,開始下載安裝,安裝完成後進行測試一下。
  • Android 端基於 OpenCV 的邊框識別功能
    Library,是一個使用 C++ 編寫的跨平臺的計算機視覺庫,能對輸入的圖片進行處理,包括常見的高斯模糊,提取灰度圖片,提取輪廓等等,可以應用於增強現實,人臉識別,運動跟蹤,物體識別,圖像分區等。在 Android 平臺需要使用 JNI 技術來調用 C++ 的庫,事實上,OpenCV 的官網已經提供了編寫好的 Android 庫:OpenCv4Android,我們可以按照提示導入該庫,就可用以使用 Java 代碼來調用了。但是該庫包含了 OpenCV 所有的模塊,造成了該庫體積非常大,其中很多並不是我們需要的。
  • OpenCV 強大的開源計算機視覺庫
    因此你可以通過C++來使用OpenCV庫。另外OpenCV也提供了類似的Python、JavaScript等接口,可以讓您避免C++難度過大的問題。下面小編將為您介紹如何在自己的平臺上安裝OpenCV以及推薦一些不錯的學習資源~
  • Qt for MCUs 快速上手實踐
    ,例如您正在使用的是NXP1050 EVK硬體,選擇對應的Baremetal庫或者FreeRTOS庫,配置方法和桌面環境類似,有區別的地方在於不同的MCU會依賴不同的底層庫,參考官方文檔下載配置即可,此處略過。
  • 世界上最好的語言PHP:OpenCV與計算機視覺已在我掌控之下
    不幸的是,網上大多數材料都是基於 PHP 5 而寫的 PHP 擴展,因此我不得不一點點收集信息並自己解決問題。然後,我在 GitHub 上找到了 php-opencv 庫,它是一個用於調用 OpenCV 方法的 PHP 7 模塊。我花了幾個晚上來編譯、安裝和運行示例。
  • 基於TensorFlow 、OpenCV 和 Docker 的實時視頻目標檢測
    安裝 OpenCv 並編譯:# Install OpenCVRUN git clone https://github.com/opencv/opencv.git /usr/local/src/opencvRUN cd /usr/local/src/opencv/ && mkdir
  • Qt信號槽原理
    2、環境以及知識點Qt版本:Qt 5.5.1系統:windows 10在閱讀本文前,希望你能:熟練使用Qt的信號槽功能,對信號槽的寫法以及4和5的區別了如指掌;3、信號槽源碼分析通過繼承QObject,並在定義類是添加一定Qt內置宏,能在運行時動態獲取Qt的信號槽、類型信息以及相關屬性。
  • Python 圖像處理 OpenCV (1):入門
    新系列第一件事兒當然是資源推薦,下面是一些有關 OpenCV 的資源連結:資源連結:官方網站:https://opencv.org/GitHub:https://github.com/opencv/opencv官方文檔:https://docs.opencv.org/中文文檔(非官方):http://www.woshicver.com
  • QT 技術應用常用問題解答
    /qt_zh_CN.ts然 後,我們就用Linguist打開這個qt_zh_CN.ts,進行翻譯了,翻譯完成後,保存後,再用lrelease命令生成qt_zh_CN.qm, 這樣,我們把它加入到我們的qt project中,那些系統的對話框,菜單等等其它的默認是英文的東西就能顯示成中文了。9、在Windows下Qt裡為什麼沒有終端輸出?
  • 基於opencv 的圖像處理入門教程
    前言雖然計算機視覺領域目前基本是以深度學習算法為主,但實際上很多時候對圖片的很多處理方法,並不需要採用深度學習的網絡模型,採用目前成熟的圖像處理庫即可實現,比如 OpenCV 和 PIL ,對圖片進行簡單的調整大小、裁剪、旋轉,或者是對圖片的模糊操作。
  • qt5.12下繼承於Qdialog的類調用slot函數編譯錯誤匯總
    最近由於項目需要,需要使用qt做一套連接資料庫並且實現用戶登錄,註冊的界面,但是做起來卻很費勁,出現了一堆奇怪的編譯錯誤。這個時候,在qt下先執行qmake,然後再重新構建,最後看一下是否還有錯誤。如果還是一堆堆的錯誤,那麼繼續把報錯的h文件和cpp文件,採用相同的保存方式。經過修改,這個是可以達到解決編譯錯誤的修改的。但是如果代碼本身的格式就是代籤名的,還是出錯的話,我們只能在這個機器上重新新建工程,複製粘貼進行實現了。
  • Qt 國際化(下)
    2 messages saved55 messages savedtr()函數是 QObject 的函數,如果你的類不是繼承自 QObject,就不能直接使用 tr()函數。解決辦法一是顯式地調用 QObject 的函數:w.setWindowTitle(QObject::tr("MyApp"));或者,你可以使用 QCoreApplication 的 translate()函數。
  • Qt值得學習嗎?詳解Qt的幾種開發方式
    qt值得學習嗎?嵌入式要學的東西真的很多,我們可能會說不寫界面的話就不用學qt了?我不贊同。Qt的實現主要是採用p-impl手法,實現接口與實現分離,它有很好的消息循環機制,有的對象與線程的相關性,它也有藉助moc生成反射元信息,這種設計方法至今仍然非常適用。qt內核部分其實是完全和界面無關的,你完全可以拋開Qt GUI部分來學習和使用Qt。
  • python+opencv實現車牌識別
    文章目錄:一、前言二、訓練分類器2.1、準備訓練用單字符圖片2.2、圖片預處理2.3、用opencv的preprocess_hog()處理圖片2.4、用SVM訓練分類器三、車牌定位四、字符分割五、字符識別六、Mysql保存七、總結八、參考資料一、 前言:最近一直在學習機器學習,花了段時間把《機器學習實戰》(【美】Peter Harrington著
  • OpenCV入門及應用案例:手把手教你做DNN圖像分類
    圖像處理就是對其中一個像素或者一個區域內的像素(塊)進行處理。無論是初學者還是富有經驗的研發人員,他們都需要藉助軟體工具來分析這些像素和圖像塊,OpenCV則是其中最常用、最重要的一個軟體工具。OpenCV成為最主要的圖像處理工具包,是因為它功能齊全,支持目前主流的圖像、視頻處理算法,而且對外提供C++、Python和Java的接口,用戶調用方便。