写这篇文章的初衷,学习C++也有一段时间了,Qt和OpenCV也简单的应用过,但这些之间的配置方法网上不同的文档真的是千差万别,实现的方式也是多种多样,这篇文章记录下自己实现的方式。

参考的书籍是《OpenCV3和Qt5计算机视觉应用开发》,一个伊朗的视觉工程师的写的。

1.前期准备

  安装好VS2015,Qt5.9.1,CMake3.18.5。解压好opencv3.3.0。注意环境变量的配置。

  CMake如果是exe安装文件,直接安装,安装过程中注意勾选“Add Cmake to the system PATH for all users”,意思是安装时会自动添加环境变量。

  CMake如果是zip压缩文件,直接解压,需要手动添加环境变量。路径是截止到bin为止,例如我的cmake-gui.exe放在了“C:\Program Files (x86)\cmake-3.18.5-win64-x64\bin”,那么环境变量就是它。

  opencv3.3.0解压位置是C:\dev\opencv,Qt安装位置是C:\Qt\Qt5.9.1。环境变量如下:

  

2.编译后的文件要存放到什么位置,一般是opencv下的opencv_build文件夹,区别下opencv解压后的build文件夹

 

   点击Finish后,要把BUILD_opencv_world的勾勾上,再次Configure,完事后Generate。

3.VS编译OpenCV.sln

  用VS2015打开C:/dev/opencv/cmakeBuildx64下的OpenCV.sln,在这里有两种方式

    3.1 菜单栏中《生成》《批生成》,这个生成很耗时,至少十几分钟,但生成的是全部的opencv文件

    3.2  在解决方案资源管理器中选择“CMakeTargets“下的“INSTALL“,右键“仅用于项目“、“仅生成INSTALL(B)“ 这种是我从别的地方看来的,生成时在我的电脑上报错。

       我还是用3.1中的生成方式,不过只勾选了INSTALL的Debug|x64,也得生成好一会。事后如果需要Release版本,也可以再次生成,不过不要勾选已生成过的。

4.添加环境变量C:\dev\opencv\cmakeBuildx64\install\x64\vc14\bin到Path

 5.制作Qt的PRI文件

  PRI文件放在C:\dev\opencv路径下,文件名为opencvx64.pri。注意笔者生成的是64位的。

INCLUDEPATH += C:/dev/opencv/cmakeBuildx64/install/include
Debug: {LIBS += -lc:/dev/opencv/cmakeBuildx64/install/x64/vc14/lib/opencv_world330d}
Release: {LIBS += -lc:/dev/opencv/cmakeBuildx64/install/x64/vc14/lib/opencv_world330}

6.编写测试Qt程序验证

  6.1 创建Qt时选择MSVC2015_64

  6.2 在pro文件最下方写上这句话

include(C:/dev/opencv/opencvx64.pri)

  6.3 main.cpp文件代码如下,代码中的路径要写上图片的路径

#include "mainwindow.h"
#include <QApplication>
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();
    Mat image=imread("");
    imshow("Output",image);
    return a.exec();
}
main.cpp

7.构建-->>执行qmake-->>运行,是否成功,在此一举,反正我的是成功了。就是因为我新建的qt没有qmake一下,差不多用一上午的时间去查看各种编译的文档,后来qmake了一下,就成功了。

  记得一定要qmake一下,不然可能会报错。

8.在生成测试过程中遇到Qt无法运行rc.exe的错误,解决方案如下。

  8.1 32位的程序  C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x86中的rc.exe和rcdll.dll拷贝到C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin(VS2015的安装目录下面)

  8.2 64位的程序  C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64中的rc.exe和rcdll.dll拷贝到C:\Qt\Qt5.9.1\5.9.1\msvc2015_64\bin(Qt的安装目录下面)