目录
一、下载安装CMake
CMake下载地址:https://cmake.org/download/
打开下载好的cmake-3.20.3-windows-x86_64.msi,开始安装
勾选同意协议,单击下一步
选择添加到用户变量,单击下一步
选择安装位置,默认C盘,单击下一步
开始安装
二、下载OpenCV
OpenCV下载地址:https://opencv.org/releases/ 最新版本为4.5.2,怕编译出妖蛾子,还是用4.5.0吧
在D盘创建一个OpenCV_4.5.0的文件夹,双击打开下载好的opencv-4.5.0-vc14_vc15
选择解压目录,解压,解压完成后软件会自动关闭
三、安装QT
QT下载地址:
国内镜像网站
这里给大家推荐几个国内著名的 Qt 镜像网站,主要是各个高校的:
中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/
清华大学:https://mirrors.tuna.tsinghua.edu.cn/qt/
北京理工大学:http://mirror.bit.edu.cn/qtproject/
中国互联网络信息中心:https://mirrors.cnnic.cn/qt/
官网:https://download.qt.io/archive/qt/
我这里下载的是官网的5.12.10版本,如果官网的访问不了,也可以访问以上国内镜像
打开下载好的qt-opensource-windows-x86-5.12.10.exe,开始安装,没啥好讲的,下一步
这里需要输入你的QT账号,如果没有会提示注册
这里同意开源协议,单击下下步
下一步
这里选择安装目录
选择安装组件,全部安装需要20多G空间,我这里选择全选
同意许可协议,下一步
快捷方式,直接下一步
单击开始安装
四、添加环境变量
打开计算机属性->环境变量->系统变量,添加如下三个变量
C:\Program Files\CMake\bin 这个安装CMake时自动添加,如果没有,手动添加
C:\Qt\Qt5.12.10\Tools\mingw730_64\bin
C:\Qt\Qt5.12.10\5.12.10\mingw73_64
五、使用CMake配置并编译OpenCV
打开刚才解压好的 opencv目录,手动新建opencv-build这个文件夹
打开安装好的CMake
输入OpenCV的源码目录和编译目录
D:\OpenCV_4.5.0\opencv\sources
D:\OpenCV_4.5.0\opencv\opencv-build
勾选Advanced
点击Configure
保持默认MinGW Makefiles,点击Specify native compilers(指定本机编译器),再next
注意目录按你电脑上QT目录来,注意斜杠方向
C输入 C:/Qt/Qt5.12.10/Tools/mingw730_64/bin/gcc.exe
C++输入 C:/Qt/Qt5.12.10/Tools/mingw730_64/bin/g++.exe
Fortran空着
弹出错误,不要急
这个时候如果遇到:(没遇到,忽略这个问题)
CMake Error: CMake was unable to find a build program corresponding to "MinGW Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
解决办法:如图所示勾选Advanced,对变量:CMAKE_MAKE_PROGRAM 设置value .QT目录下的mingw32-make.exe 即可
单击Configure,开始配置,过程时间很长,过程中有可能会连接网络下载东西
Configuring done之后,更多的红色出现,不要慌,接着配置,下拉将WITH_OPENGL和WITH_QT选中即可,然后再次点击Configure
这次就快了,但又是一堆红色,按下面图示修改对应的红色,再次Configuring
终于没红色了
红色消失,最后点击Generate
Generate完成之后,关闭Cmake,此时进入之前我们新建的文件夹D:\OpenCV_4.5.0\opencv\opencv-build
将鼠标放在该文件夹界面内空白处,按住shift键,同时点击鼠标右键,点击在此处打开Powershell窗口(s),
进入Windows Powershell,输入mingw32-make -j 8,回车开始编译
按回车键执行该命令,这里的-j 8是为了让CPU进行多任务处理,可以加快编译速度。我的电脑是4核8线程CPU,如果你的配置更高,你也可以选择更高的数字
错误记录:
gcc: error: long: No such file or directory
C:\PROGRA~1\MINGW-~1\X86_64~1.0-P\mingw64\bin\windres.exe: preprocessing failed.
mingw32-make[2]: *** [modules\core\CMakeFiles\opencv_core.dir\build.make:1492: modules/core/CMakeFiles/opencv_core.dir/vs_version.rc.obj] Error 1
mingw32-make[2]: *** Waiting for unfinished jobs....
mingw32-make[1]: *** [CMakeFiles\Makefile2:1844: modules/core/CMakeFiles/opencv_core.dir/all] Error 2
解决:
编译完成,无错误,谢天谢地
100%完成之后,输入mingw32-make install命令进行安装
完成之后退出
另外再将如下路径按照前述方式加入环境变量即可D:\OpenCV_4.5.0\opencv\opencv-build\install\x64\mingw\bin
六、QT调用测试
创建一个QT Widgets Application应用,选择MinGW_64_bit-Release编译器
mainwindow.cpp中包含
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;
mainwindow.cpp中添加如下代码
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
Mat image=imread("D:/MultiMode/1/1.jpg",1);//一定要使用绝对路径,其他可以回报错
namedWindow("Display window", WINDOW_AUTOSIZE );
imshow("Display window", image );
}
工程文件TestOpenCV.pro中添加如下包含
INCLUDEPATH += D:/OpenCV_4.5.0/opencv/opencv-build/install/include
INCLUDEPATH += D:/OpenCV_4.5.0/opencv/opencv-build/install/include/opencv2
LIBS += D:/OpenCV_4.5.0/opencv/opencv-build/lib/libopencv_*.a
要将编译好的opencv的库复制到工程编译文件夹下才能运行
运行显示