1. 程式人生 > >001】Qt 5.10.1下配置OpenCV開發環境及Demo

001】Qt 5.10.1下配置OpenCV開發環境及Demo

一、開發環境

1、Windows 7 64位 SP1 旗艦版;

2、Qt 5.10.1;

3、OpenCV 3.4.1

二、環境配置


圖1 OpenCV庫資料夾

2、開啟Qt Creator,新建基於控制檯的專案,此處專案命名為“OpenCV_ShowImage”;

3、將OpenCV庫複製到工程目錄,放在資料夾“OpenCV_Qt”下;

4、開啟“OpenCV_ShowImage.pro”檔案,新增如下路徑包含程式碼:

1)專案資料夾下相對路徑1:

INCLUDEPATH += $$PWD/OpenCV_Qt/include\
               $$PWD/OpenCV_Qt/include/opencv\
               $$PWD/OpenCV_Qt/include/opencv2

LIBS += -L $$PWD/OpenCV_Qt/lib/libopencv_*.a

2)專案資料夾下相對路徑2:

INCLUDEPATH += $$PWD/../OpenCV_Qt/include\
               $$PWD/../OpenCV_Qt/include/opencv\
               $$PWD/../OpenCV_Qt/include/opencv2

LIBS += -L $$PWD/../OpenCV_Qt/lib/libopencv_*.a
3)絕對路徑:
INCLUDEPATH += D:/OpenCV_Qt/include\
               D:/OpenCV_Qt/include/opencv\
               D:/OpenCV_Qt/include/opencv2

LIBS += -L D:/OpenCV_Qt/lib/libopencv_*.a

4)新增完整包含:

INCLUDEPATH += $$PWD/../OpenCV_Qt/include\
               $$PWD/../OpenCV_Qt/include/opencv\
               $$PWD/../OpenCV_Qt/include/opencv2

unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_calib3d341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_core341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_dnn341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_features2d341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_flann341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_highgui341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_imgcodecs341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_imgproc341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_ml341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_objdetect341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_photo341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_shape341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_stitching341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_superres341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_video341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_videoio341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -llibopencv_videostab341
unix|win32: LIBS += -L$$PWD/../OpenCV_Qt/bin/ -lopencv_ffmpeg341

以上4種路徑設定均可,取決於OpenCV庫所放的位置;其中第4種將所有庫檔案均包含進來,簡單粗暴,不過不容易出錯;不同版本的OpenCV庫,僅需要修改後面的版本號即可。以上4種僅為參考,專案編寫過程中需根據具體情況來設定,遇到問題適當調整即可解決。

經過上述步驟,即完成OpenCV庫的環境配置,下面是簡單的示例程式,用來演示配置是否有效。

三、示例Demo

1、完成第二部分配置後,開啟“main.cpp”檔案,新增如下程式碼:

#include <QCoreApplication>
#include "opencv2/opencv.hpp"//新增Opencv相關標頭檔案

using namespace cv;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    Mat img = cv::imread("test.jpg");//載入並圖片,延時2後自動關閉視窗
    imshow("Image", img);
    waitKey(2000);

    destroyAllWindows();

    return a.exec();
}

2、將自定義的圖片新增到合適位置;

3、構建並執行程式,執行效果如圖2所示。


圖2 執行效果圖