window下编译Opencv3.1.0和opencv_contrib

来源:互联网 发布:荼靡电视剧大结局知乎 编辑:程序博客网 时间:2024/06/05 18:27

在使用opencv库时,有可能需要使用opencv_contrib中的代码(许多研究者将自己的算法提到这个github项目),但opencv_contrib的使用会依赖于opencv库。本文介绍如何在window下编译opencv3.1.0和opencv_contrib。

1. 下载所需代码和软件

1.1 opencv3.1.0
地址:https://sourceforge.net/projects/opencvlibrary/files/opencv-win/3.1.0/opencv-3.1.0.exe/download
解压后目录结构如下图:
这里写图片描述
1.2 opencv_contrib
地址:https://github.com/opencv/opencv_contrib
解压后目录结构如下图:
这里写图片描述
1.3 CMake
地址:https://cmake.org/download/
这里写图片描述
可以下载二进制文件,解压后可以直接使用
进入bin文件夹后如下图:
这里写图片描述

2. 使用cmake生成OpenCV.sln

2.1 双击cmake解压文件夹中bin目录下cmake-gui.exe,填写相应参数
这里写图片描述

2.2 左下角有一个Configure按钮,需要点击进行配置
这里写图片描述
此处选择时需要注意生成器的选择,首先vs的版本,其次应用平台(空代表win32,AI代表AMD,win64代表64位)

2.3 第一次点击Configure后,可能会出现下面情况,再点击一次Configure即可
这里写图片描述

2.4 将opencv_contrib加入到工程中,在配置表在配置表中找到“OPENCV_EXTRA_MODULES_PATH”,设置其参数值为open_contrib源码包中的modles目录
这里写图片描述

2.5 点击左下角generate按钮,生成OpenCV项目,然后可以发现生成文件目录中出现了一个完整工程。
这里写图片描述

3. vs打开Opencv.sln工程,编译生成Debug库和Release库,打开后,选择工程,右击,选择“重新生成解决方案”,这里要耐心等待几分钟,如果重新生成解决方案没有错误,继续下一步。

4. 在工程中找到CMakeTargets中的INSTALL,然后右键选择“仅限于项目”–>“仅生成INSTALL”,可以发现”文件存放目录”多了个install文件夹,这就是编译后生成的库文件。
这里写图片描述

5. 最后,将生成的库文件配置到项目中
5.1 VC++目录–>包含目录,添加:
D:\opencv3.1\tools\opencv_contrib\install\include
5.2 VC++目录–>库目录,添加:
D:\opencv3.1\tools\opencv_contrib\install\x86\vc10\lib
D:\opencv3.1\tools\opencv_contrib\install\x86\vc10\staticlib
5.3 链接器–>输入–>附加依赖项,添加: (下面添加的release的版本,注意添加的库与编译选项要一致,需要注意debug比release的文件名多了个d)

 opencv_aruco310.libopencv_bgsegm310.libopencv_bioinspired310.libopencv_calib3d310.libopencv_ccalib310.libopencv_core310.libopencv_datasets310.libopencv_dnn310.libopencv_dpm310.libopencv_face310.libopencv_features2d310.libopencv_flann310.libopencv_fuzzy310.libopencv_highgui310.libopencv_imgcodecs310.libopencv_imgproc310.libopencv_line_descriptor310.libopencv_ml310.libopencv_objdetect310.libopencv_optflow310.libopencv_photo310.libopencv_plot310.libopencv_reg310.libopencv_rgbd310.libopencv_saliency310.libopencv_shape310.libopencv_stereo310.libopencv_stitching310.libopencv_structured_light310.libopencv_superres310.libopencv_surface_matching310.libopencv_text310.libopencv_tracking310.libopencv_ts310.libopencv_video310.libopencv_videoio310.libopencv_videostab310.libopencv_xfeatures2d310.libopencv_ximgproc310.libopencv_xobjdetect310.libopencv_xphoto310.libippicvmt.lib

**ps:**opencv_contrib中有些代码是不稳定的,在”重新生成解决方案时”会报错,导致错误代码所在项目无法生成库文件。所以建议需要那部分代码,就只将这部分代码所在项目加入编译。

参考:http://www.cnblogs.com/jliangqiu2016/p/5597501.html

0 0