Qt5+OpenCV3.4.6环境搭建

准备工作

1.Qt5 (Qt官网下载https://www.qt.io/)
2.cmake(cmake官网下载 https://cmake.org/download/)
3.OpenCV(OpenCV官网下载https://opencv.org/)

这边采用的是Qt5.11 (编译器以MinGW为例)
cmake3.14.3
OpenCV3.4.6

注意

路径请不要用中文!
路径请不要用中文!
路径请不要用中文!

确认Qt编译器

首先确认Qt的编译器,目前Qt官网上下载的Qt,在安装时自带的是MinGW编译器,但也可以选择VS等其他编译器。
如果不知道自己Qt编译器的话,可以打开Qt5编译环境,创建项目时会显示当前的编译器,如下图。

在这里插入图片描述以上图为例,这边有两个编译器,一个是32位MinGW,另一个是64Bit MSVC2017(这个编译器需要配置,如果在安装Qt前已经安装过VS2017或者该编译器,在Qt安装时候会自动配置)。

这边选择项目后续所需要用到的编译器(这边以MinGW为例),生成一个普通的Qt项目。
点击Qt IDE工具栏“工具”,再点击“选项”,进入Kit套件管理页面,查看MinGW C/C++的编译器位置。
在这里插入图片描述由上图可知
MinGW的C++的编译器为C:\Qt\Tools\mingw530_32\bin\g++.exe
MinGW的C的编译器为C:\Qt\Tools\mingw530_32\bin\gcc.exe

配置cmake

cmake解压之后在\cmake\cmake-3.14.3-win64-x64\bin会有一个带图形界面的软件cmake-gui.exe,打开以后如下图所示:
在这里插入图片描述where is the source code中填入OpenCV的源码路径
where to build the binaries中填入编译后生成文件的存放位置(可自己新建一个文件夹)
Advanced勾选
在这里插入图片描述点击下方的Configure按钮,会弹出配置框
Specify the generator for this project下拉框中选择MinGW Makefiles,然后圈选Specify native comilers,点击Next
在这里插入图片描述
之后会让选择MinGW的C/C++编译器位置,填入对应编译器位置(具体怎么找路径看”确认Qt编译器“章节),Fortran不用填写,配置完后点击Finsh,进行配置验证。
在这里插入图片描述
第一次配置Cmake时候,会失败跳出Error in configuration process,project files may be invalid错误。
这个时候在Cmake列表控件中,找到CMAKE_MAKE_PROGRAM这一项(没有找到这一项的话,请确认Advanced是否勾选),修改其Value的路径值。由于使用了MinGW编译器,因此路径值应该为C:/Qt/Tools/mingw530_32/bin/mingw32-make.exe(make文件应该和编译器在用一个目录下
在这里插入图片描述配置完成后,再一次点击Configure文件,
如果报故“由于找不到libwinpthread-1.dll,无法继续执行代码”,可以添加环境变量或者将C:\Qt\Tools\mingw530_32\bin下的libwinpthread-1.dll复制到
32位系统放入:C:\Windows\System32
64位系统放入:C:\Windows\SysWOW64

此时,配置通过,但需要将勾选WITH_OPENGL、WITH_QT、ENABLE_CXX11三项。并将WITH_OPENCL_D3D11_NV勾选状态去除。
在Qt5Concurrent_DIR,Qt5Core_DIR,Qt5Gui_DIR,Qt5Test_DIR,Qt5Widgets_DIR,Qt5OpenGL_DIR,它们的Value分别填写为:
C:/Qt/5.11.1/mingw53_32/lib/cmake/Qt5Concurrent
C:/Qt/5.11.1/mingw53_32/lib/cmake/Qt5Core
C:/Qt/5.11.1/mingw53_32/lib/cmake/Qt5Gui
C:/Qt/5.11.1/mingw53_32/lib/cmake/Qt5Test
C:/Qt/5.11.1/mingw53_32/lib/cmake/Qt5Widgets
C:/Qt/5.11.1/mingw53_32/lib/cmake/Qt5OpenGL
再次configure。

在这里插入图片描述

如果出现Found unsuitable Qt version “” from NOTFOUND, this code requires Qt 4.x问题
需要将http://svn.osgeo.org/ossim/trunk/ossim_package_support/cmake/CMakeModules/FindQt5.cmake文件内容复制到findqt4.cmake,替换原有文件。(文件路径E:\cmake\cmake-3.14.3-win64-x64\share\cmake-3.14\Modules)

在cmake日志框出现Configuring done之后点击 Generate按钮,稍等后显示Generating done,完成生成工作。

MinGW编译

可以将C:\Qt\Tools\mingw530_32\bin\mingw32-make.exe复制到cmake生成的OpenCV文件夹下,通过CMD到生成的OpenCV文件夹路径下运行mingw32-make.exe可自动执行编译(或者将C:\Qt\Tools\mingw530_32\bin添加进环境变量中)。
编译时候遇到如下问题:
1.cap_dshow.cpp文件出错,显示sprintf_instead_use_StringCbPrintfA_or_StringCchPrintfA没有定义
解决方法:打开opencv-3.4.6\modules\videoio\src\cap_dshow.cpp文件,在最前面(注释后有效代码第一行)加上宏定义

#define STRSAFE_NO_DEPRECATE在这里插入图片描述
遇到其余问题可以参考一下:https://blog.csdn.net/Lin_Mengxuan/article/details/89482306

安装

编译完成后,在生成的OpenCV文件夹下,使用CMD命令行,输入mingw32-make install,等待安装完成,完成安装后会生成install文件夹。

Qt5配置OpenCV

首先找到3部分文件,静态库(.lib文件),动态库(.a文件)(VS的为.dll),头文件。
静态库文件位于通过CMAKE生成好的OpenCV文件夹内,示例路径为:E:\OpenCV\opencv-3.4.6-Build\lib
动态库文件位于通过CMAKE生成好的OpenCV文件夹内,示例路径为:E:\OpenCV\opencv-3.4.6-Build\bin
头文件位于通过CMAKE生成好的OpenCV文件夹内,示例路径为:E:\OpenCV\opencv-3.4.6-Build\install\include

将E:\OpenCV\opencv-3.4.6-Build\lib内所有文件复制到C:\Qt\5.11.1\mingw53_32\lib下
将E:\OpenCV\opencv-3.4.6-Build\bin内所有文件复制到C:\Qt\5.11.1\mingw53_32\bin下

在C:\Qt\5.11.1\mingw53_32\inclule下创建一个文件名称为OpenCV,
并将E:\OpenCV\opencv-3.4.6-Build\install\include内所有文件复制到C:\Qt\5.11.1\mingw53_32\inclule\OpenCV下

Qt5调用OpenCV

启动Qt创建一个项目工程,在该项目的.pro文件下加入以下代码
LIBS += C:\Qt\5.11.1\mingw53_32\lib\libopencv_*.a
INCLUDEPATH += C:\Qt\5.11.1\mingw53_32\include\OpenCV
在这里插入图片描述OpenCV的库就能够正常调用了,可以写一些简单的Demo进行测试。

  • 8
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值