之前安装了Qt5.9.1使用MinGW编译器,使用Cmake进行了编译得到可调用库,之后想Qt与VS都可以调用opencv库,然后有了接下来的事情。简言之,折腾几天,安装VS2015、Qt5.9.1_MSVC14 32bit、opencv3.3.0,实现Qt和VS皆可调用opencv。
我先安装的Qt5.12,测试时发现在写connect函数时,信号函数没有自动提示,让我很不爽,了解原因的朋友望告知我一下,其他Qt5.12都挺不错,添加了的实时的代码提示。
下载Qt,得到类似
直接安装,在 选择组件那一步,选择 msvc2015 32-bit
其余默认,不要选 MinGW 5.3.0 32 bit ,除非你想使用这个编译器。
下一步直至安装完成。
下载WDK,
安装WDK十分简单,只需按照默认的安装步骤即可。当然在第二步中,有很多“features”可以选择,如果你只需要CDB的话,只需要勾选 Debugging Tools for Windows 选项即可。
安装完成后Qt creator会自动识别
添加系统变量:D:\Qt\Qt5.9.1\5.9.1\msvc2015\bin
,根据自己的安装路径自行修改。
之后你可以简单新建工程进行测试
你可以选择下载1或者2。1只包括源文件;2里面包括一些编译好的文件,在 build文件夹。如果你的VS版本合适,里面的是可以直接调用的,我安装的是OpenCV3.3.0,里面只有x64版本的VC14可用,如果你安装的正好是Qt_MSVC14 64bit,Qt creator理论上是可以直接调用的。
里面包含里OpenCV的一些收费库,如SIFT。
解压后放在opencv目录
当下载的OpenCV包里面不包括跟你版本对应的静态编译文件时,你就需要用cmake进行编译,比如使用MinGW或者其他VS版本的编译器。
1选择源文件路径
2选择你编译文件的保存路径(可自行创建一个,如果你下载的是Win pack版,就不要存到 build 里面了)
点击configure
跳出下面的对话框,选择Visual studio 14 2015 和使用默认本地编译器
下面这两个如图所示,第一个是生成一个包含所有的lib文件,第二个是配置opencv_contrib路径
注意:WITH_QT和WITH_OPENGL不要选,我就是因为选了这个,后面的编译一直出错,如果有知道原因的请告知。不包括这两个造成的已知影响是显示窗口没有了放大、缩小、保存等功能
点击 configure ,如还有红色接着点击,直至红色消失,
点击 generate,完成,点击 Open Project,打开vs2015
在VS2015里面操作,点击批生成(Batch Build)
按上图这样选择,点击 生成(Build)
等待即可,时间稍有点长,最后显示全部成功,无失败,表示编译成功。
配置系统变量:E:\opencv\build\install\x86\vc14\bin
,根据自己的路径自行修改。
我们所用的都在install文件夹里,其余可删掉
新建一个 .pri
文件,名字可以随便取,不要有中文,位置也可任意;如下所示:
内容如下:
INCLUDEPATH += E:/opencv/build/install/include
Debug: { LIBS += -lE:/opencv/build/install/x86/vc14/lib/opencv_world330d }
Release: { LIBS += -lE:/opencv/build/install/x86/vc14/lib/opencv_world330 }
然后新建一个工程在*.pro
文件(如下图)中末尾添加(路径改成自己的):
include(E:/opencv/opencv.pri)
右键工程名,点击 qmake,工程目录就会多一个opencv.pri文件 。配置完成。
测试:
#include
#include "opencv2/opencv.hpp"
#include "opencv2/highgui.hpp"
using namespace cv;
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
Mat image = imread("E:/opencvimg/1-1.bmp");
namedWindow("view",WINDOW_KEEPRATIO);
imshow("view",image);
return a.exec();
}
此时VS也可调用编译好的OpenCV,配置过程网上教程很多,可参考vs2015配置OpenCV