VS2022編譯器支持配置
QT5默認安裝以后支持的是VS2015與VS2017,不支持VS2022,所以必須首先在Qt Creator中配置支持VS2022。配置順序如下:
首先打開【工具】->【選項】
然點擊Kits里面的【編譯器】選項。點擊Manual下面的【C++】然后點擊【添加】
最重要的是填寫好正確的VS2022編譯器的路徑,添加如下:
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Auxiliary\Build\vcvarsx86_amd64.bat
然后把VS2022編譯器的路徑添加到環境變量里面去:
C:\Program Files\Microsoft Visual Studio\2022\Professional\VC\Tools\MSVC\14.42.34433\bin\Hostx64\x64
OpenCV4.10配置與代碼測試
重啟QT Creator,新建一個QApplication項目,選擇MSVC2017 64bit Release。然后在mainwindow.cpp文件中添加下面一段代碼
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <opencv2/opencv.hpp>
#include "QLabel"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);this->setWindowTitle("OpenCV4.10+QT5+VS2022 - OpenCV學堂");cv::Mat frame = cv::imread("D:/images/yige.png");cv::Mat rgb;cv::cvtColor(frame, rgb, cv::COLOR_BGR2RGB);QImage img = QImage(rgb.data, rgb.cols, rgb.rows, rgb.step, QImage::Format_RGB888);img = img.scaled(QSize(800, 500), Qt::KeepAspectRatio);QPixmap pixmap;pixmap = pixmap.fromImage(img);// QPixmap pixmap("D:/images/dannis.jpg");QLabel *image_label = new QLabel();image_label->setAlignment(Qt::AlignCenter);image_label->setStyleSheet("background-color:rgb(0, 0, 0);color:red");image_label->setPixmap(pixmap);this->setCentralWidget(image_label);}MainWindow::~MainWindow()
{delete ui;
}
配置好OpenCV庫依賴添加到*.pro文件中去
win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../opencv-4.10.0/opencv/build/x64/vc16/lib/ -lopencv_world4100
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../opencv-4.10.0/opencv/build/x64/vc16/lib/ -lopencv_world4100d
else:unix: LIBS += -L$$PWD/../../../opencv-4.10.0/opencv/build/x64/vc16/lib/ -lopencv_world4100INCLUDEPATH += $$PWD/../../../opencv-4.10.0/opencv/build/include
DEPENDPATH += $$PWD/../../../opencv-4.10.0/opencv/build/include
請注意遇到問題:
官方系統化學習QT + OpenCV + 深度學習 一鍵資料下載
QT Creator編譯 遇到的問題 - 無法找到C++標準頭文件
無法打開包括文件: “type_traits”: No such file or directory
解決方法:
打開當前項目,點擊【build】->【build Environment】的詳情,分別添加Include與Lib選項內容。圖示如下: