Windows 10下Qt配置OpenCV的C++环境(MinGW)
时间:2022-12-04 04:00:00
Windows 10下Qt配置OpenCV的C 环境(MinGW)
使用软件:
Qt 5.14.2 cmake 3.15.7 openCV 4.5.3
一、Qt安装
1.下载
??下载地址:download.qt.io
??选择版本:Qt 5.14.2
??Qt 5.14.2百度网盘下载地址:
??链接:https://pan.baidu.com/s/1ycfiU34xCnBvbnSBoCrtIw
??提取码:zj4c
2.安装
??填写Qt账号(没有账号Sign-up一栏注册)。
??漫长的等待…
??将快捷方式添加到桌面:
??Qt安装完成!
??添加MinGW环境变量:
Qt安装路径\Tools\mingw730_32\bin
二、CMake安装
1.下载
??CMake是跨平台编译工具,OpenCV是使用C/C 官方网站提供的版本Qt不能直接使用,需要使用CMake重新编译Qt可用的版本。
??下载各版官网地址:https://cmake.org/files/
??选择版本:cmake-3.15.7-win64-x64.msi(CMake版本选择无所谓)
??cmake 3.15.7百度网盘下地址:
??链接:https://pan.baidu.com/s/1WFWYT1IGdpCp4wlMziLZDA
??提取码:x5jn
2.安装
??将快捷方式添加到桌面:
??CMake安装完成!
三、OpenCV安装
1.下载
??下载地址:https://opencv.org/releases/
??选择版本:opencv 4.5.3
??opencv 4.5.3百度网盘下载地址:
??链接:https://pan.baidu.com/s/1vzkp3BfFZGmO0kDx3ThYVw
??提取码:m2xo
2.安装
??OpenC安装完成!
四、opencv_contrib
??3.0版本以后的OpenCV中,SURF和ORB该特征提取算法对应的库opencv_contrib模块是独立的,建议安装opencv_contrib模块。
??下载地址:https://github.com/opencv/opencv_contrib/tags
??选择版本:opencv_contrib 4.5.3(需要与OpenCV版本相同,否则编译时可能会报错)
??opencv_contrib 4.5.3百度网盘下载地址:
??链接:https://pan.baidu.com/s/1o4t-qugwC-_XMvV3Yx9Mkg
??提取码:vuwc
??为便于管理,将下载的文件解压到OpenCV在安装路径下。
五、环境配置
??Qt搭建OpenCV官方文档:
??https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows
??确保在构建环境之前MinGW环境变量和CMake添加了环境变量:
??在OpenCV新建安装目录MinGW编译输出文件夹,随意命名opencv_build。
??双击运行cmake-gui,按下图填写。
??分别在“C”、“C ”中填写Qt安装路径下的相应编译路径:
Qt安装路径/Tools/mingw730_32/bin/gcc.exe Qt安装路径/Tools/mingw730_32/bin/g .exe
??发现出现CMake Warning,打开编译输出文件夹CMakeDownloadLog.txt查看具体错误(即使没有CMake Warning,还需要查看此文件)。
??放入下载的文件源码(即sources目录)路径下面对应的文件夹。
??接下来检查一些选项(最好不要漏,漏,你知道)。
勾选WITH_QT 勾选WITH_OPENGL 不勾选WITH_IPP 不勾选WITH_OPENCL_D3D11_NV 勾选ENABLE_CXX11 不勾选ENABLE_PRECOMPILED_HEADERS 勾选OPENCV_ENABLE_NONFREE 不勾选OPENCV_ENABLE_ALLOCATOR_STATS
??由于版本原因,没有上述选项,也没有提到默认选项。
??再次点击“Configure”。
??不用担心上述错误,只看控制台的错误报告。Qt5_DIR”为Qt安装目录下的Qt5文件夹路径:
Qt安装路径/5.14.2/mingw73_32/lib/cmake/Qt5
??再次点击“Configure”。
??再次点击“Configure”。
??点击直到没有红色选项,Generate”。
??cmake编译opencv完成!
??接下来,打开cmd,输出文件进行编译(opencv_build)输入以下命令:
mingw32-make -j 8
??“-j 8表示使用8线程,可根据计算机硬件条件进行调整。单线程编译命令如下:
mingw32-make
??漫长的等待…
??最后,执行以下命令:
mingw32-make install
??在环境变量中添加以下路径:
OpenCV安装路径\opencv\opencv_build\install\x64\mingw\bin
六、测试
??打开QtCreator,新建“MainWindow类项目.pro输入文件(INCLUDEPATH”和“LIBS根据具体路径调整值:
QT = core gui greaterThan(QT_MAJOR_VERSION, 4): QT = widgets CONFIG = c 11 # The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend on your compiler). Please consult the documentation of the # deprecated API in order to know how to port your code away from it. DEFINES = QT_DEPRECATED_WARNINGS # You can also make your code fail to compile if it uses deprecated APIs. # In order to do so, uncomment the following line. # You can also select to disable deprecated APIs only up to a certain version of t.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0
SOURCES += \
main.cpp \
mainwindow.cpp
HEADERS += \
mainwindow.h
FORMS += \
mainwindow.ui
INCLUDEPATH += D:\Downloads\OpenCV\opencv\build\include\
D:\Downloads\OpenCV\opencv\opencv-build\install\include
LIBS += D:\Downloads\OpenCV\opencv\opencv-build\bin\libopencv_*.dll
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
在mainwindow.cpp文件中输入(图片的路径需要具体调整):
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include
#include
#include
#include
using namespace cv;
using namespace xfeatures2d;
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
// read an image
cv::Mat image = cv::imread("D://lena.jpg");
// create image window named "My Image"
cv::namedWindow("My Image");
// show the image on window
cv::imshow("My Image", image);
}
MainWindow::~MainWindow()
{
delete ui;
}
编译运行。
编译不报错,且出现以上结果证明Qt配置OpenCV环境成功!
接下来就是在Qt的世界里尽情地玩耍OpenCV!
各版本Opencv模块介绍:https://docs.opencv.org/4.5.3/index.html
参考资料
1.https://wiki.qt.io/How_to_setup_Qt_and_openCV_on_Windows
2.https://zhuanlan.zhihu.com/p/326284759
3.https://blog.csdn.net/zhizhengguan/article/details/107567449
4.https://www.bilibili.com/video/BV1Za4y1v7ra?p=1