win11中Qt5.14.0+msvc2019+opencv4.9配置
本文主要研究由msvc编译的opencv在QT中的配置,opencv可以是官网直接下载的版本,也可以是msvc(例如vs2019)通过cmake编译 contrib功能的opencv版本,这2种版本对qt版本没有严格要求,但是若在cmake中选择了with_qt功能,那么配置时的qt版本就要和编译时选择的qt版本一样或相近了。
下载官方opencv4.9并解压,将bin路径添加到系统变量
打开Qt5.14.0新建项目
.pro文件设置以下内容
#win32:CONFIG(release, debug|release): LIBS += -LE:/opencv4.9/build/x64/vc16/lib/ -lopencv_world490
#else:win32:CONFIG(debug, debug|release): LIBS += -LE:/opencv4.9/build/x64/vc16/lib/ -lopencv_world490dCONFIG(debug,debug|release){
LIBS += -LE:/opencv4.9/build/x64/vc16/lib/ -lopencv_world490d
}
else{
LIBS += -LE:/opencv4.9/build/x64/vc16/lib/ -lopencv_world490
}INCLUDEPATH += E:/opencv4.9/build/include
DEPENDPATH += E:/opencv4.9/build/include
这里注意如果有多个opencv文件,可以后面添加
LIBS += -LE:/opencv4.9/build/x64/vc16/lib/ -lopencv_world490 -lopencv_shape490
添加点击事件
输入按钮点击事件的代码,头文件也要添加
#include <QFileDialog>
#include <QMessageBox>
#include <QPixmap>#include <opencv2/opencv.hpp>
#include <opencv2/imgproc.hpp>using namespace cv; // 引入opencv的命名空间
using namespace std;
void MainWindow::on_pushButton_clicked()
{QString filename = QFileDialog::getOpenFileName(this, "打开图像文件", "C:/Users", "Image Files (*.bmp;*.png;*.jpg)");if (filename.isEmpty()) {QMessageBox::information(this, "提示", "文件打开失败1!");return;}Mat img_input;img_input = imread(filename.toLocal8Bit().toStdString());if (img_input.empty()) {QMessageBox::information(this, "提示", "文件打开失败2!");return;}cv::Mat temp;cv::cvtColor(img_input, temp, cv::COLOR_BGR2RGB);namedWindow("Display window",WINDOW_AUTOSIZE);imshow("Display window",img_input);waitKey(0);MainWindow w;w.show();
}
选择一张图片
这里需要注意的是,opencv如果只针对msvc进行编译,而没有针对qt进行编译,opencv就像在Visual Studio中使用一样,如果也针对qt进行了编译,显示的图片窗口会带有qt特色的功能按钮