回到网站

7.18 Win10下Qt + OpenCV的开发环境配置

以Qt for Windows MSVC2015和OpenCV 3.1.0_contrib为例

暑假才过了两周就已经结束了,被导师催回来干活。手头的项目就是当时毕业设计的改进和扩充,8月底需要完成初始版本的验收。当时做毕设没有过多考虑界面的问题,图省事就用了MFC,现在看来简直吃藕得不忍直视。因此决定用Qt重写整个程序,便于以后美化界面风格,让客户看着顺眼些。

OpenCV的配置网上一搜一大把,但是由于需要用到KCF跟踪算法,因此要编译一下contrib库。contrib是OpenCV开源社区最新贡献但不是完全成熟的函数库,我们要通过其中的Tracker类来调用跟踪算法。

 

Qt在Windows环境下有两种编译方式,MinGW和msvc。msvc就是微软的VC运行库,只要安装了Visual Studio就自带了,在编译速度上比较有优势。缺点是,采用msvc编译的话,需要单独安装cdb调试工具,才能在Qt中进行单步调试,下文详谈。

由于这两个原因,整个配置过程比较繁杂,踩了无数坑,在这里做个总结整理,记录一下以免遗忘。

部分资源合集:http://pan.baidu.com/s/1bpJqqDp

第一步:OpenCV编译与配置

1、下载OpenCV 3.1.0和contrib库,以及CMake编译工具

OpenCV3.1.0 http://opencv.org/downloads.html

解压并安装至任意位置,例如D:\OpenCV310

contrib https://github.com/opencv/opencv 

将得到的opencv_contrib-master.zip文件解压至任意位置

2、生成解决方案

打开CMake工具

where is the source code中填入下载的OpenCV 3.1.0解压之后的路径,定位到opencv/sources下;

where to build the binaries任意指定位置,例如D:/contrib

broken image

点击Configure,选择对应的Visual Studio版本,其余默认

broken image

配置完成后,在OPENCV_EXTRA_MODULES_PATH中填入下载并解压的opencv contrib-master\modules,点击Generate生成解决方案。如果配置失败,删干净之后重试几次。

3、编译生成dll和lib

生成解决方案成功之后,在自定义的生成文件夹下找到OpenCV.sln,用Visual Studio打开

broken image

找到解决方案资源管理器,右击INSTALL,点击生成

注意要在debug和release模式下分别生成一次

broken image

第二步 配置Qt开发环境

1、下载Qt for Windows MSVC2015 64-bit 可在资源合集中找到

可以先注册一个Qt账号以便使用

2、安装完成之后,打开Qt Creator新建工程目录,打开***.pro工程文件,添加INCLUDEPATH和LIBS,文件路径如图所示。具体代码见资源合集中的Test.pro

broken image

3、配置系统环境变量

右击此电脑——属性——高级系统设置,在系统变量Path中加入刚才编译好的dll路径,例如D:\contribute\install\x64\vc14\bin

图中是Win10的添加方法,Win7需要直接添加在Path字符串后面,方法自行百度

broken image

4、测试代码

#include "cv.h"

#include "cxcore.h"

#include "highgui.h"

#include <opencv2/core/core.hpp>

#include <opencv2/highgui/highgui.hpp>

using namespace std;

using namespace cv;

int main(int argc, char *argv[])

{

       Mat image = imread("D:\\1.jpg");

namedWindow("window", WINDOW_NORMAL);

imshow("window",image);

waitKey(0);

}

broken image

第三步 配置cdb调试器

前面提到msvc编译速度快,上面步骤之后我们已经可以编译运行,但是无法调试。接下来就配置一下Windows的cdb调试器。

1、安装cdb

微软每个版本的系统都会提供调试工具Debugging tools for Windows,简称dbg,包含了WinDbg, KD, CDB, NTSD等常用的调试工具。从Win8.1开始似乎也不再提供独立的dbg了,而是包含在WDK或SDK中。这里用的是Win10 10.0.10586.15版本的SDK安装工具来安装dbg,见资源合集中的sdksetup.exe。双击打开,在选项中去掉其他几项,只保留Debugging Tools for Windows即可。很容易下载失败,可以尝试挂代理进行下载。

2、在Qt中配置cdb

打开Qt Creator,工具——选项,点击构建与运行——构建套件,选择自动检测,在调试器中点击Manage,可以自动检测到两个cdb.exe,分别是32位和64位,根据需求自行选择。

broken image

3、测试

F9加个断点,F5进行调试

broken image

到这一步,整个开发环境就基本配置完成了。

常见问题

1、找不到文件“cv.h”或者"opencv2/core/core_c.h"——检查INCLUDEPATH

2、无法解析的外部符号blabla……——检查LIBS

  • 每次修改完***.pro工程文件,需要点击 构建——执行qmake后才能生效

3、程序异常结束 crashed——检查系统环境变量Path

  • 修改环境变量之后需要重启Qt Creator

如果检查无误依然有问题,可尝试在 构建 中清理项目、重构项目、执行qmake后再编译。