Qt+openCV学习笔记(九)Qt5.15.2+openCV4.5.5+mingw64编译动态库(使用中国源)

Qt+openCV学习笔记(九)Qt5.15.2+openCV4.5.5+mingw64编译动态库(使用中国源),第1张

前言:

最近偶然注意到gitcode.net上有openCV的中国镜像,就想到各种依赖或模型文件,是不是可以自动下载了,就尝试了下,正好也将openCL加速编译进去,以方便测试用

一、安装需要的软件

1.安装git

这方便教程很多,不再重复。

笔者使用的是git2.33

2.安装cmake

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

二、下载所需要的资源

1.下载opencv4.5.5源码

https://gitcode.net/opencv/opencv/-/archive/4.5.5/opencv-4.5.5.zip

2.下载opencv_contrib-4.5.5源码

OpenCV / opencv_contrib · GitCode

3.wechat_qrcode模型

detect.caffemodel

detect.prototxt

sr.caffemodel

sr.prototxt

4.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

5.face_landmark_model.dat

三、设置环境变量

环境变量设置方法很多,可以直接设置系统的环境变量,笔者使用的是在一个cmd窗口中临时设置环境变量

执行如下命令

set path=D:\Qt\Tools\mingw810_64\bin;D:\Program Files\Git\usr\bin;%path%

若是查看环境变量执行如下

echo %path%
四、生成make文件

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

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

打开如下窗口

点击configure,d出如下窗口

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

设置编译器,以下是笔者的设置

 ​

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

 configure完成后,修改配置选项

以下是笔者感兴趣的选项

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

 是否生成动态库

是否生成付费相关的部分

 添加扩展库,注意要具体到modules目录

 ​

 ​

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

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

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

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

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

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

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

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

点击generate,生成makefile文件

四、编译源码

设置好环境变量的cmd中,切换目录到编译目录(请按实际目录执行)

执行mingw32-make -j6 开始编译

(6代表同时开6个线程编译,请读者按照自己机器的配置设置,以加快编译速度)

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

编译完成后,执行mingw32-make install

过会就可以在安装目录找到生成的动态库了,笔者是在编译目录下的install

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

已生成的动态库

五、带world选项的源码编译

为平时测试方法,不需要引用太多的库,笔者尝试编译带word选项的库,前几次编译未成功,但在移除cvv模块后,编译成功

*** 作如下,在CMake gui中,勾选world

 同时取消勾选cvv

其他 配置不变,再次等待Configure,然后正常编译,

因为是编译到一个库中,耗时更长长,笔者等待了一小时左右

已生成的动态库(带world和不带world)

后记:

笔者测试发现,若只是编译基本库,可以正常下载所有依赖或模型文件;但添加上贡献库后,部分模型文件仍然无法下载

笔者建议,平时开发测试时,可以使用world的库,但发布程序时,尽量不要这么做,库太大了

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/662213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-18
下一篇 2022-04-18

发表评论

登录后才能评论

评论列表(0条)

保存