Qt+openCV学习笔记(五)Qt5.15.2+openCV4.5.4+VS2019_64编译动态库

 前言

 opencv官方只提供基本的库,若是用到其他库,需要自己编译。通常只要编译自己需要的模块就可以了,本次编译过程可供大家参考

本次编译的,是未带CUDA加速的版本

假设Qt、VS2019已正常安装,笔者使用的版本是Qt5.15.2 vs2019_64版、VS2019社区版

一、安装需要的软件

1.安装git

这方便教程很多,不再重复。笔者使用的是git2.33

2.安装cmake

这个教程也很多,但笔者没有安装,使用的是Qt安装时,下载的

二、下载所需要的资源

1.下载opencv4.5.4源码

https://github.com/opencv/opencv/archive/refs/tags/4.5.4.zip

2下载opencv_contrib-4.5.4源码

https://github.com/opencv/opencv_contrib/archive/refs/tags/4.5.4.zip

3.ffmpeg库

下载地址:https://github.com/opencv/opencv_3rdparty/tree/ffmpeg/master_20211005

建议直接下载整个项目,笔者尝试只下载需要的动态库,但未成功

4.ippicv库

下载地址:el64_20191018_general.ziphttps://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_win_intel64_20191018_general.zipel64_20191018_general.zip

5.wechat_qrcode模型

detect.caffemodel

detect.prototxt

sr.caffemodel

sr.prototxt

6.xfeatures2d

boostdesc_bgm.i

boostdesc_bgm_bi.i

boostdesc_bgm_hd.i

boostdesc_binboost_064.i

boostdesc_binboost_128.i

boostdesc_binboost_256.i

boostdesc_lbgm.i

vgg_generated_48.i

vgg_generated_64.i

vgg_generated_80.i

vgg_generated_120.i

7.face_landmark_model.dat

以上资源笔者已经下载完成,有需要的可以直接下载

三、生成make文件

在设置好环境变量的cmd中执行(请按实际目录执行)

D:\Qt\Tools\CMake_64\bin\cmake-gui.exe

打开如下窗口

点击configure,弹出如下窗口

 以上是笔者的设置,点击Finsh

 之后就是等待完成,此过程时间有点长

 configure完成后,修改配置选项

以下是笔者感兴趣的选项

安装目录(生成的动态库的目录)

 是否生成动态库

是否生成付费相关的部分

 添加贡献库,注意要具体到modules目录

 

 

 添加Qt库(添加后,opencv相关UI会有更多控制选项)

 再次点击configure后,会提示输入Qt的目录

 

 笔者的目录是D:/Qt/5.15.2/msvc2019_64/lib/cmake/Qt5,请大家不要出错,不是bin目录

继续点击configure(可以多点几次,有时多点几次就可以下载成功),

若输出中仍然存在红色的文字,打开编译目录,找到日志文件CMakeDownloadLog.txt,查看缺少或下载失败的文件,下载完成后,按日志文件的提示,放入指定目录即可

笔者已下载缺少的文件,处理方法如下

1.解压opencv_3rdparty-ffmpeg-master_20211005.zip,

把opencv_videoio_ffmpeg.dll复制到源码目录下的.cache/ffmpeg,并重命名为c2f9a897d464a2dce2286f8067ad9d90-opencv_videoio_ffmpeg.dll

把opencv_videoio_ffmpeg_64.dll复制到源码目录,.cache/ffmpeg,并重命名为878a4e8fe5a4d68f18c9cdde543b9ead-opencv_videoio_ffmpeg_64.dll

把ffmpeg_version.cmake复制到源码目录,.cache/ffmpeg,并重命名为8862c87496e2e8c375965e1277dee1c7-ffmpeg_version.cmake

2.把ippicv_2020_win_intel64_20191018_general.zip复制到源码目录,.cache/ffmpeg,并重命名为879741a7946b814455eee6c6ffde2984-ippicv_2020_win_intel64_20191018_general.zip

3.把downloads和testdata两个目录,直接放在编译目录(笔者已整理好内部目录)

再次点击configure,此时应该不会有红色的文字了(若存在,请自主解决)

点击generate,生成makefile文件

四、编译源码

在源码输出目录找到OpenCV.sln,使用VS打开

分别切成debug和release模式,

 

 然后分别执行生成

些过程耗时较长,笔者等待了半小时左右

生成完成后,就可以在安装目录找到已生成的动态库,笔者在编译输出目录下的install

因时间关系,笔者本次就不添加测试程序了

五、遇到的问题

笔者在cmake设置时,发现opencv开始支持Qt6了,原本想用Qt6.2.0,结果发现编译出问题。Qt6中已不在存在QGLWidget,修改成QOpenGLWidget了,笔者尝试修改了下源码,最终决定放弃。若读者不想浪费太多时间,建议先不要尝试了

已生成的动态库动态库

你可能感兴趣的:(Qt+openCV,opencv)