Opencv的一些高级特征提取、视屏追踪以及机器学习的相关库都集成在opencv_contrib包里面,使用之前需要进行编译配置。
需要的工具如下图所示:
其中有opencv3.2的自解压windows包,下载地址为:https://opencv.org/opencv-3-2.html
opencv_contrib-3.2.0.zip压缩包,下载地址为:https://github.com/opencv/opencv_contrib/releases
CMake可视化编译工具,需要自己下载安装
protobuf-cpp-3.1.0.tar.gz时谷歌的文本协议工具,需要翻墙下载,在编译的时候下载容易因为无法下载出错,所以提前下载:https://github.com/google/protobuf/releases?after=v3.2.1
安装过程如下:
1、下载好opencv-3.2.0-vc14.exe和opencv_contrib-3.2.0.zip,并解压到当前文件夹。
2、安装CMake可视化编译工具,并打开,选择源码位置以及build后文件存放目录:
然后点击Configure进行配置,弹出的对话框选择默认就行,如果用的其他VS版本请自行选择:
Notice:此处Configure中需要联网下载ippicv与ffmepg。若没有出现Configure done,请再次尝试点击Configure。
配置完成后找到OPENCV_EXTRA_MODULES_PATH这一项,把自己对应的目录填进去,本人是:
G:/OpenCV32/opencv_contrib-3.2.0/modules,然后点击Generate生成:
在生成的过程中需要用到我们之前下载的protobuf文件,如果生成中间报错,就把下载下来的protobuf-cpp-3.1.0.tar.gz文件放到:G:\OpenCV32\opencv_contrib-3.2.0\modules\dnn.download\bd5e3eed635a8d32e2b99658633815ef\v3.1.0 目录下,然后重新点击Generate生成。
往opencv中添加opencv_contrib模块,找到OPENCV_EXTRA_MODULES_PATH,后面添加路径D:\opencv3\source\opencv_contrib\modules,精确到\modules。然后继续configure,一次之后如果还有红色的块,继续configure,知道全部变白为止。
3、上述步骤成功后,回到我们设置的存放build文件的目录,G:\OpenCV32\opencv\sources\build,找到如下文件打开:
11.打开工程--->右键--->重新生成解决方案。注意你选择的是debug还是release,这就是debug版与release版的区别。bebug版有检测数据是否溢出的功能,release相对反应速度快。
12.重新生成的时间大约20分钟(time of toilet!),生成的效果如下,如果有失败,原因是GITHUB上的opencv_contrib版本高,所以请更新你的opencv。
主工程含有151项目,重新生成解决方案。—- 此处会很慢,约20分钟。
全部重新生成: 成功 104 个,失败 0 个,跳过 47 个。
Dubug版本下,dll文件存放目录:C:\OpenCV3.1\myOpenCV\bin\Debug;
lib文件存放目录:C:\OpenCV3.1\myOpenCV\lib\Debug
设置当前编译环境为release->重新生成解决方案。—- 同样很慢。。。耐心等。
Release版本下,dll文件存放目录:C:\OpenCV3.1\myOpenCV\bin\Release;
lib文件存放目录:C:\OpenCV3.1\myOpenCV\lib\Release
打开工程后右键INSTALL->生成,会在该目录下生成一个install目录,至此安装配置完成,新建测试工程,配置属性表参考之前写的opencv3.1+vs2015配置工程:http://blog.csdn.net/lengconglin/article/details/78188855
配置OpenCV开发库的系统路径,win7下计算机右击->属性->高级系统设置->环境变量,在系统变量或xx用户变量中新建变量名Path,变量值设置为:C:\OpenCV3.1\myOpenCV\bin\Release;C:\OpenCV3.1\myOpenCV\bin\Debug,如下图所示。
打开VS,新建win32控制台应用程序TestOpenCV1,选取视图->属性管理器
选取Debug|win32下,Mircrosoft.Cpp.Win32.user,右键->属性
选取VC++目录->包含目录,设置路径为:
C:\OpenCV3.1\include
C:\OpenCV3.1\include\opencv
C:\OpenCV3.1\include\opencv2
继续在当前属性页,选取VC++目录->库目录,设置路径为:
C:\OpenCV3.1\myOpenCV\lib\Release
继续在当前属性页,选取链接器->输入->附加依赖项->编辑,添加下列值:
opencv_aruco310.lib
opencv_bgsegm310.lib
opencv_bioinspired310.lib
opencv_calib3d310.lib
opencv_aruco310.lib
opencv_bgsegm310.lib
opencv_bioinspired310.lib
opencv_calib3d310.lib
opencv_ccalib310.lib
opencv_core310.lib
opencv_datasets310.lib
opencv_dnn310.lib
opencv_dpm310.lib
opencv_face310.lib
opencv_features2d310.lib
opencv_flann310.lib
opencv_fuzzy310.lib
opencv_highgui310.lib
opencv_imgcodecs310.lib
opencv_imgproc310.lib
opencv_line_descriptor310.lib
opencv_ml310.lib
opencv_objdetect310.lib
opencv_optflow310.lib
opencv_photo310.lib
opencv_plot310.lib
opencv_reg310.lib
opencv_rgbd310.lib
opencv_saliency310.lib
opencv_shape310.lib
opencv_stereo310.lib
opencv_stitching310.lib
opencv_structured_light310.lib
opencv_superres310.lib
opencv_surface_matching310.lib
opencv_text310.lib
opencv_tracking310.lib
opencv_ts310.lib
opencv_video310.lib
opencv_videoio310.lib
opencv_videostab310.lib
opencv_xfeatures2d310.lib
opencv_ximgproc310.lib
opencv_xobjdetect310.lib
opencv_xphoto310.lib
lib库共41个,包含基础库13,扩展库28。
---------------------
步骤4 代码测试
新建main,输入下列测试代码:
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat src = cv::imread("dog.png");
cv::imshow("src", src);
cv::waitKey(0);
return 0;
}123456789
程序运行结果如下:
---------------------
至此项目opencv配置完成。回到解决方案视图,源文件下添加新建项,main.cpp:
#include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
int main(int argc,char** argv) {
Mat src = imread("F:/OpencvCode/TestMat/Lena.jpg");
if (src.empty()) {
printf("could not load image");
return -1;
}
namedWindow("test opencv",CV_WINDOW_AUTOSIZE);
imshow("test opencv", src);
namedWindow("output window", WINDOW_AUTOSIZE);
Mat output_image;
cvtColor(src, output_image, CV_BGR2GRAY);
imshow("output window", output_image);
imwrite("lena.png", output_image);
waitKey(0);
return 0;
}1234567891011121314151617181920212223242526
在x64的Debug模式下运行调试可得结果: