1、安装QT、cmake、opencv

1、安装QT和Cmake

这里安装qt和cmake我就不说了,我的QT版本是5.15.2

cmake去官网安装最新的就可以了。

2、安装opencv

去官网安装opencv,因为opencv后面的版本有很多有版权问题,所以可以下载opencv3.x不要下载太高的版本,这样可以跟一些程序兼容好点

image-20231104151409959

下载完成之后打开,选择最好是qt的安装路径

image-20231104151542445

2、cmake编译opencv

打开刚刚的路径会是下面这样,source是源码路径,在当前文件中新建一个文件夹

image-20231104151655642

image-20231104151947094

打开cmake gui,这个新打开的应该没有这个红色的区域,我这个是已经处理好的了

image-20231104151902684

然后点击configure,开始编译

image-20231104152254490

选择编译器

image-20231104152331151

这里要选择你qt安装路径下的c和c++的编译器

1
2
3
# 参考我的,要改成你自己的
D:/software/QT5/Tools/mingw810_64/bin/gcc.exe
D:/software/QT5/Tools/mingw810_64/bin/g++.exe

c对应的是gcc c++对应的是g++

然后点击finish

等待编译完成

3、cmake 编译报错

点击编译完成之后一半是会报错的

这个时候我们要对一些东西进行删减

在这里搜索把以下的东西进行勾选

  • WITH_QT 打勾
  • ENABLE_CXX11 打勾
  • WITH_OPENGL 打勾
  • WITH_IPP 不打勾
  • OPENCV_GENERATE_SETUPVARS 不打勾
  • WITH_OPENCL_D3_D11_NV 不打勾

image-20231104152703991

然后再点击configure,等待编译成功

但是这个时候可能还有问题,这个问题一般是有些文件没有下载成功

去找到源码路径下的这个路径下,看是不是这几个文件只有几kb,如果是的话,就是这个东西没有解决,这个是会导致你到时候使用opencv的视频操作的时候出现问题的地方。

image-20231104153008347

解决

去这个网站下载对应的版本的这个三个文件文件 · ffmpeg/master_20191119 · OpenCV / opencv_3rdparty · GitCode

版本可以在这个路径下的ffmpeg.cmake这个文件下查看

image-20231104153414968

我的是20181103

image-20231104153434434

image-20231104153504157

下载下来,把.cache文件中的那三个文件的名字复制替换这个三个的名字,前面是哈希值好像

image-20231104153609915

image-20231104153734955

替换完成之后回到cmake,先点击configure,在点击Generate生成,没有问题之后

image-20231104153809804

4、编译opencv

在你电脑对应的下面路径查看是否出现Makefile,如果出现在当前路径下打开cmd,执行

1
mingw32-make -j 8   # 这里的8代表你的CPU进程数,可自行查看,越多越快

或者 之前步骤失败

image-20231104154043585

image-20231104154309720

如果你的Qt两个环境变量配置无误一般不会报错,请一定检查。

如果上面没有错误 开始安装 同样在当前路径输入下面 命令

1
mingw32-make install 

安装结束后,可以在文件夹内发现新增了install文件夹

这个时候还需要把对应的install文件夹进行环境变量配置: 下面是我的路径要改成自己的 加入环境变量中

D:\software\QT5\opencv\opencv-build\install\x64\mingw\bin

image-20231104154510386

5、使用QT的 opencv

新建一个QT窗口项目,在.pro文件内末尾添加如下两行: (改成自己的路径)

1
2
3
4
# 包含路径
INCLUDEPATH += D:\software\QT5\opencv\opencv-build\install\include
# 库文件
LIBS += D:\software\QT5\opencv\opencv-build\lib\libopencv_*.a

简单程序的头文件

1
2
3
4
5
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
using namespace cv;