opencv在QT中的配置和使用教程


本文使用的軟件包:

QT、cmake、opencv庫

由於主要參考的是以下兩個博客,這里就根據他們的內容關鍵點截圖加上一些自己遇到的問題來寫,具體細節可參考下面兩個鏈接。

 

1.  https://blog.csdn.net/luolaihua2018/article/details/111409213

2.  https://blog.csdn.net/ltc0106/article/details/100189313

一、軟件安裝

(1)QT

下載地址:http://download.qt.io/archive/qt/5.13/5.13.0/

QT安裝具體細節見博客2,注意以下幾步

 

 

 

 

 

 同時注意系統變量的添加,博客二中有詳細說明。

 

(2)cmake

下載地址: https://cmake.org/download/

 

 

選最新版本即可 

(3)opencv

下載地址:  https://opencv.org/releases/

 

 

 根據自己的系統選擇

 

二、使用cmake編譯opencv

(1)根據自己的opencv版本號選擇解壓

 (2)等待源代碼解壓完成

 

 

 (3)解壓完成后,啟動剛剛安裝好的Cmake程序,自己填寫OpenCV剛剛解壓的源碼目錄,以及自己新建一個文件夾用於存放編譯完成的opencv,填寫到下一行的編譯目標目錄,然后點擊下方的configure按鈕進行第一次配置。

 

 (4)選擇MinGw Makefiles,然后選擇第二項,完成后點擊下一步

 

 (5)指定c編譯器和c++編譯器的路徑,請找到你的QT目錄\Tools\mingw730_64\bin下的gcc.exe和g++.exe程序,依次對應填寫。

 

 (6)等待第一次configure完成。(configure到最后可能會下載opencv_videoio_ffmpeg相關庫文件,如果沒有梯子的話可能會比較久)

 

 

 (7)configure完成后,需要配置一些參數。

在第三行的Search中,搜索WITH_QT,打勾。

搜索WITH_OPENGL,打勾。

 

搜索ENABLE_PRECOMPILED_HEADERS,取消打勾。

 

 

 

搜索QT5_DIR,將“你的QT路徑\5.13.0\mingw73_64\lib\cmake\Qt5”填進去。 例如我的是:D:\WorkApp\QT\5.13.0\mingw73_64\lib\cmake\Qt5,完成以上操作后點擊Configure進行第二次Configure。

 

 (8)第二次Configure完成后,點擊Generate生成opencv編譯文件到目標目錄。

 

 

 (7)(8)步中可能會遇到不同的情況,此時可根據具體情況google or百度,直到Configure done.

(9)Generating done之后,打開win10的Windows PowerShell命令行(按住Shift鍵,然后在桌面或文件資源管理器窗口空白處點擊右鍵,在彈出的右鍵菜單中選擇“在此處打開PowerShell窗口”即可打開Windows PowerShell)如圖:,輸入命令cd 進入到你的opencv的目標目錄,然后開始編譯(這次編譯比較耗時間,具體耗時長短由你的CPU性能而定)。QT中的MinGw組件務必選取正確,如果選擇了其他的這一步可能會出現無法編譯。

編譯命令:

mingw32-make.exe -j(線程數量)   

線程數量根據自己電腦cpu性能酌情填寫。4核CPU就填4,8核心就填8,以此類推,例如我是8核心的就填“mingw32-make.exe -j8”即可,如果直接mingw32-make.exe命令編譯的話會很慢,在用四線程或者更高線程時會快很多,但是可能會出現各種錯誤,出現錯誤時可修改線程數繼續編譯,如果仍不成功需自行google or 百度解決方案,參考博客1和2中給出了一些常見問題的解決方法。這也是整個配置過程中最復雜的一步。

 

 

 (10)漫長的等待后,終於完成了,完成之后輸入命令“mingw32-make.exe install”完成最后的編譯,完成后,opencv庫的編譯已經成功。

 

 

mingw32-make.exe install

(11)將opencv編譯好的庫文件路徑加入系統變量path中。

 

 (12)最后再添加一個新的環境變量名字 OPENCV_SDK_DIR 變量值就是你編譯好的opencv目錄的install文件夾的路徑,示例如下圖

 

 

 (四)在QT中進行測試

每次在QT中新建文件時要注意文件路徑必須是英文,打開.pro文件,加入

INCLUDEPATH += D:\opencv\opencv\opencv-build\install\include\opencv2 \
        D:\opencv\opencv\opencv-build\install\include
LIBS += D:\opencv\opencv\opencv-build\install\x64\mingw\lib\libopencv*.a

根據自己的include和lib文件路徑進行選擇!*.a表示所有不同后綴的文件

 

 QT中一些常見的頭文件:

#include <opencv2/highgui/highgui_c.h>
#include <opencv2/opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
using namespace cv;

測試程序(打開一張圖片):

int main()
{
    cv::Mat img;
    img = cv::imread("C:\\Users\\study\\Pictures\\1.png");//參數1:圖片路徑。參數2:顯示原圖

    namedWindow("窗口1",CV_WINDOW_NORMAL);
    /*注釋
    參數1:窗口的名字
    參數2:窗口類型,CV_WINDOW_AUTOSIZE 時表明窗口大小等於圖片大小。不可以被拖動改變大小。
    CV_WINDOW_NORMAL 時,表明窗口可以被隨意拖動改變大小。   */
    
    imshow("窗口1", img);//在“窗口1”這個窗口輸出圖片。
    waitKey(5000);//等待5秒,程序自動退出。改為0,不自動退出。
    return 0;

}

成功顯示即大功告成!

 


免責聲明!

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



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