之前都是通过VS2013来使用Opencv,最近由于需要做图形化界面,重新拾起了QT。
本文部分转自点击打开链接
作者本次使用的是:window10 64位系统;Opencv2.4.12;QT5.4.2;QT Creator3.4.1.
前期的准备工作不再赘述。
主要是安装QT和QT Creator,注意:在安装QT中安装minGW工具.
安装完成后,将其添加至系统环境变量中。
如下是作者的路径:
D:\Qt5.4\QT5.4\5.4\mingw491_32\bin
D:\Qt5.4\QT5.4\Tools\mingw491_32\bin
安装CMake工具。主要是用于对Opencv的minGW编译。
安装完成后将其添加至系统环境变量中
C:\Program Files (x86)\CMake\bin
下载Opencv源码。通过Cmake对其进行配置和生成。主要步骤如下:
第一行添加Opencv源代码路径,第二行为生成的minGW编译文件所在位置。
点击左下方的configure,会提示选择编译器,此处一定要选择"Specify native compilers",之前直接选取“Use default native compilers”,最后在配置完成,生成动态库后在QT中使用经常出错,后重新选择配置编译才可以正常使用。
此处选择的编译器一定要是在环境变量中的C和C++编译器。(此处图片为网络图片,请按自己实际路径进行配置)
成功后,有两处需要更改
上图选取的地方是CMake生成的configure类型,可以填入Debug和Release,这样生成的库文件就可以指出上面两种版本的编译。
另外必须要勾选下图中的 WITH_QT,WITH_OPENGL以使CMake编译出可以供Qt使用的库文件
至此,就可以点击generate进行生成了。
在完成以上所有步骤之后,打开控制台,进入生成的目录中。
依次键入 mingw32-make 和 mingw32-make install ,如之前配置无误,程序就会依次开始编译和安装,下图依次为相应结果:
至此,Opencv的QT库已经编译完成。
在QT工程文件中pro添加Opencv的头文件路径和库即可完成。
INCLUDEPATH += F:/opencv2.4.10/build/include/opencv \
F:/opencv2.4.10/build/include/opencv2 \
F:/opencv2.4.10/build/include
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libcv2.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_calib3d2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_contrib2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_nonfree2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_ocl2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_gpu2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_photo2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_objdetect2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_legacy2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_ml2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_video2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_features2d2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_highgui2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_imgproc2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_flann2410.dll.a
LIBS +=F:/opencv2.4.10/OpenCVMinGW/lib/libopencv_core2410.dll.a
之后在头文件中包含一下即可使用
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
using namespace cv;