基於MinGW的QT環境配置OpenCV
阿新 • • 發佈:2018-12-31
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;
}