1. 程式人生 > >基於MinGW的QT環境配置OpenCV

基於MinGW的QT環境配置OpenCV

1. 下載openCV。

在下載openCV官網http://opencv.org/ 選擇下載 OpenCV for windows(我下載的是2.49)
解壓到D盤openCV目錄下 D:\openCV

2. 下載QT。

  • 2.2 安裝到D:\QT5,安裝時選擇tools中最新的minGW 2.9.1
  • 2.3 將minGW配置到環境變數path中,注意:是用tool中的那個minGW的bin目錄
    D:\Qt5\Qt5.4.1\Tools\mingw491_32\bin

3. 下載CMake。

4. 使用CMake編譯openCV

  • 4.1 選擇source code路徑: D:\openCV\opencv\sources
  • 4.2 選擇build路徑: D:\openCV\opencv\minGW_bulid
  • 4.3 點config,出現很多紅條,不管它,選中WITH_OPENGL,和WITH_QT,繼續config,然後點generate
  • 4.4 在cmd終端,進入D:\openCV\opencv\minGW_bulid輸入以下倆個命令:

        minGW32-make
        minGW32-make install

    這個過程有點長,我i7處理器編譯了10分鐘,

  • 4.5編譯之後將install資料夾中的include, bin, lib 三個資料夾拷貝到QT的安裝目錄中,我放在D:\Qt5\openCV中,除了這三個資料夾其他的東西可以刪除了。
  • 4.6 將D:\Qt5\openCV\bin放到系統環境變數中path

5. 在QT中配置openCV

  • 5.1 建立一個QT控制檯應用 暫時專案命名為OpenCVTest
  • 5.2 在OpenCVTest.pro配置檔案中新增專案所依賴的include和lib檔案路徑,如下:注意:
    • (1)因為跨平臺的需求,路徑可以用\也可以用/。
    • (2)如果路徑是一行,則要用\表示下一行還有
#配置openCV的include
INCLUDEPATH += D:\Qt5\openCV\include\opencv2
INCLUDEPATH += D:\Qt5\openCV\include\opencv
INCLUDEPATH += D:\Qt5\openCV\include #配置OpenCV的lib LIBS+=D:\Qt5\openCV\lib\libopencv_ml249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_calib3d249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_contrib249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_core249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_features2d249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_flann249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_gpu249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_highgui249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_imgproc249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_legacy249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_objdetect249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_ts249.a LIBS+=D:\Qt5\openCV\lib\libopencv_video249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_nonfree249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_ocl249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_photo249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_stitching249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_superres249.dll.a LIBS+=D:\Qt5\openCV\lib\libopencv_videostab249.dll.a

5 . 測試

在main函式中使用如下程式:
注意:(1)需要在程式中放置一個圖片,圖片使用絕對路徑,相對路徑不好使

#include <QCoreApplication>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <iostream>

using namespace std;
using namespace cv;
int main(int argc,char **argv)
{
    cout<<"opencv"<<endl;

    Mat src=imread("E:\\CODE\\QT\\OpenCVTest\\test.jpg");  //在qt裡面讀取圖片貌似只支援絕對路徑
    imshow("test",src);
    waitKey(0);

  return 0;
}