opencv+QT配置教程(全面版)

前言:

    什么是OpenCV?可能还有人不清楚吧,简单地说,OpenCV——Open Source Computer Vision Library,即开源计算机视觉库,它是基于C语言和部分C++语言来开发,可用于计算机视觉、图像处理以及模式识别和跟踪。

配置:

首先先强调一下使用环境,因为无论配置什么都好,所在的环境是很重要的,针对不同的环境做法也不一样,有时候看错了错误的环境下的教程反而会适得其反。

我的电脑配置是Win8.1、qt-opensource-windows-x86-mingw530-5.8.0,

不过下面关于qt的两种版本我也会结合起来一起讲。

qt有两种:一个是mingw版本和MSVC版本;

对比一下这两个编译器的区别:1.MSVC是指微软的VC编译器;2.MinGW是指是Minimalist GNU on Windows的缩写。它是一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你在GNU/Linux和Windows平台生成本地的Windows程序而不需要第三方C运行时库。

在这里如果你的qt是msvc版本会简单很多,因为opencv的依赖库支持的就是这个版本的,相当于是使用vs。

接下来进入正题(也就是在qt中怎么安装opencv):

第一步:安装与配置OpenCV(这个不展开说了,网上一大堆教材和链接)

第二步:qt环境配置

MSVC版本(这一部分转自其他人):

qt的.pro文件与vs中的属性表类似,决定了项目需要的头文件、依赖项的位置,改为以下:

INCLUDEPATH += D:/opencv/build/include
 
CONFIG(debug, debug|release): {
LIBS += -LD:/opencv/build/x64/vc12/lib \
-lopencv_core2410d \
-lopencv_imgproc2410d \
-lopencv_highgui2410d \
-lopencv_ml2410d \
-lopencv_video2410d \
-lopencv_features2d2410d \
-lopencv_calib3d2410d \
-lopencv_objdetect2410d \
-lopencv_contrib2410d \
-lopencv_legacy2410d \
-lopencv_flann2410d
} else:CONFIG(release, debug|release): {
LIBS += -LD:/opencv/build/x64/vc12/lib \
-lopencv_core2410 \
-lopencv_imgproc2410 \
-lopencv_highgui2410 \
-lopencv_ml2410 \
-lopencv_video2410 \
-lopencv_features2d2410 \
-lopencv_calib3d2410 \
-lopencv_objdetect2410 \
-lopencv_contrib2410 \
-lopencv_legacy2410 \
-lopencv_flann2410
}

其中-L是文件目录所在地,-l是头文件或者依赖库的文件

在头文件中添加类似下面的头文件和宏(具体函数看需要,可以根据官方文档区去找想要函数的头文件位置)

#include <opencv2/opencv.hpp>
using namespace cv;
using namespace cv::ml;

然后在配置qt的debugger

MinGw版本:

需要先下载cmake,将opencv提供的依赖库转化为mingw能够使用的,

这是我的安装版本。

安装时要注意将CMake路径(也就是上面的bin目录)添加到系统的环境变量中PATH中!

点击打开cmake-gui.exe,按部就班地去把open的依赖库导入,

点击Configure之后如果见红了就再点一下,直到是黑色为止,如果一直是红色说明报错了,详情请参照报的错误更正,通常是路径问题。全黑以后再点击Generate,注意下面的黑色qt方框要勾上!!

如果全部顺利最后会出现:

在我导出的路径则会有(未截全):

尤其是lib的动态库是.a结尾的

到了这里,说明你离成功已经很近了:

打开qt来到.pro这里:

INCLUDEPATH += D:\programTool\opencv\necessaryFile\include #*(这个是opencv解压以后存放的路径+所选的文件)*
CONFIG(debug, debug|release): {
LIBS += D:\programTool\opencv\necessaryFile\lib\libopencv_*.a

} else:CONFIG(release, debug|release): {

LIBS += D:\programTool\opencv\necessaryFile\lib\libopencv_*.a

}


格式就不讲解了,用”*“这样子写比较方便,就不用写得太冗长。然后在头文件该加的加

#include <opencv2/core/bufferpool.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/objdetect/objdetect.hpp>
#include <opencv2/ml/ml.hpp>
#include <opencv2/core/core.hpp>

using namespace std;
using namespace cv;
using namespace cv::ml;

搞定

新手建议去玩一下手写识字,从数字开始在到文字,慢慢地去体验人工智能的神奇

版权声明:本文为博主原创文章,转载请注明出处。

猜你喜欢

转载自blog.csdn.net/weixin_41501825/article/details/80980571