WIN7+OpenCV3.3+QT5.9.1+Cmake3.9.1+VisualStudio2015环境配置经验分享
0、写在前面
最近在学习Opencv的知识,作为图像处理的小学生,光是配置这个环境就浪费了不少时间,写在这里是为了让他人少走弯路。好了,废话不说了,直接讲配置过程。
1、准备基本软件环境
系统:win7 64bit。
OpenCV3.3 :OpenCV下载地址:http://opencv.org/downloads.html
QT5.9.1:Qt Creator下载地址:https://www.qt.io/download-open-source/
Cmake3.9.1:Cmake下载地址:https://cmake.org/download/ (推荐下最新版msi安装文件)
VisualStudio2015:https://www.visualstudio.com/zh-hans/downloads/
2、安装上面的这些软件
OpenCV3.3这个最简单,只需解压到你想放在的目录即可,然后配置一下系统环境变量path,这个不会配置的可以百度一下,很多教程的。这里说一下我的路径:D:\OpenCV\build\x64\vc14\lib
QT5.9.1的安装:可以下载图中的版本,安装时选择msvs2015的选项包即可:其他步骤很简单!
Cmake3.9.1的安装路径不要有中文和空格,防止出现错误!
Cmake的安装也比较简单,下载完安装文件之后,一路next即可。
安装过程大概2分钟左右,很快。
VisualStudio2015安装这里不详细说明了!读者可以自行百度!
3、使用Cmake编译OpenCV库
1.打开Cmake
1)填写OpenCV3.1的源代码目录;
2)生成目录(建议根目录,方便以后使用);
3)点击配置;
配置编译器,这里使用VS2015
64位编译器,默认选择即可。点击Finish开始配置。
这里勾选一下点击红色区域的WITH,勾选WITH_QT
和 WITH_OPENGL,然后再次configure。
如果出现错误,一般是路径不对,可以自己手动添加的,然后再次configure,直到所有的错误消失出现
然后点击Generate
此时编译器以及环境配置已经完成,下一步开始生成。
4、使用msvs2015编译库
打开目标文件夹的工程
然后进行运行编译,每次大概20分钟。这是编译后的结果:分别Debug和Release
但这里面并不全是我们所需的文件,在生成的OpenCV目录里,只保留bin和lib就行了,其余都可以删除。
然后再把我们前面解压的OpenCV3.3的build文件中包含的include复制过来,就构成了我们所需的全部OpenCV文件。
我们再为自己编译的OpenCV配置一下环境,以便以后的使用,在系统环境变量PATH中添加:
D:\opencvbuild\bin\Release;
D:\opencvbuild\bin\Debug;
D:\OpenCV\build\x64\vc14\bin;
5、在QT中配置OpenCV环境
新建一个Qt
Application工程,在pro文件中添加 :
INCLUDEPATH+=D:\opencvbuild\include\opencv2
INCLUDEPATH+=D:\opencvbuild\include\opencv
INCLUDEPATH+=D:\opencvbuild\include
LIBS+= -LD:\opencvbuild\lib\Debug\
-lopencv_calib3d330d\
-lopencv_core330d\
-lopencv_dnn330d\
-lopencv_features2d330d\
-lopencv_flann330d\
-lopencv_highgui330d\
-lopencv_imgcodecs330d\
-lopencv_imgproc330d\
-lopencv_ml330d\
-lopencv_objdetect330d\
-lopencv_photo330d\
-lopencv_shape330d\
-lopencv_stitching330d\
-lopencv_superres330d\
-lopencv_ts330d\
-lopencv_video330d\
-lopencv_videoio330d\
-lopencv_videostab330d
然后main.cpp里:
#include<opencv2/opencv.hpp>
#include<iostream>
#include<cstdlib>
using namespace cv;
using namespace std;
int main()
{
Mat src = imread("D:\\111.jpg",1);
if(src.empty()){
cout<<"ERROR:Cannot open the figure!"<<endl;
exit(-1);
}
namedWindow("Test",WINDOW_AUTOSIZE);
imshow("Test",src);
waitKey(0);
destroyAllWindows();
return 0;
}
最后结果:
写在最后:其他可以参考链接
http://blog.****.net/cv_jason/article/details/53078554
http://blog.****.net/jieyanzhe3873/article/details/73775620
http://blog.****.net/abcvincent/article/details/68486522