编译安装 OpenCV 3.1.0 + Contribute模块 详细总结

本文链接

https://blog.csdn.net/fengtaoO08/article/details/81586752

配置

Win10 + opencv 3.1.0 + opencv_contrib 3.1.0 + VS2015社区版 +cmake 3.12.0

总结方法

  • 前言

    • 首先需要先装好cmake和vs2015。
    • 本文提到的路径需换成你自己安装时的路径。
    • 存储空间:我整个装完(Debug和Release都装)后,共20.5G大小- -明明只装opencv只要几百兆的说……
  • 下载源代码

    • https://opencv.org/releases.html 下载opencv对应版本的 源代码 (这里是3.1.0,Sources)
    • https://github.com/opencv/opencv_contrib 下载opencv_contrib对应版本源代码(点release,选择3.1.0版本的zip下载)


    • 新建文件夹OpenCV-3.1.0/opencv,下有sources和build两个文件夹,将下载的opencv源代码以及contribute源代码分别解压到sources里面方便查找。


  • Cmake生成VS工程

    • Cmd运行cmake-gui(如果没有配置好cmake环境变量,就直接找cmake安装文件夹下bin里),分别填入sources文件夹下的 opencv源码文件夹 和build文件夹,点config选VS 2015 Win64(不然的话后面建的的工程没有x64版本)
    • 再点config,done后在search框内输入extra,找到OPENCV_EXTRA_MODULES_PATH,填入sources文件夹下的 contribute源码文件夹下的modules文件夹 。点击config,直到done。
    • 我的matlab配置貌似有问题,导致出现乱码,干脆不装matlab模块了。因此搜索mat,去掉WITH_MATLAB选项的√
    • Contribute的HDF模块貌似代码(hdf5.cpp)写的有问题,导致后面工程编译不通过(真坑,耗费了我大量时间)。而且网上没有搜到解决方法,干脆也不装这个模块了。因此搜索hdf,去掉BULD_opencv_hdf的√。
    • 点击config,直到done。再点generate生成VS工程,直到done。然后点击open project就直接用VS2015打开工程了。
  • VS编译

    • 在VS2015中首先等它读取完工程(我的电脑比较旧了,非常慢)直到就绪。


    • 选择平台版本为x64,然后选解决方案配置,想编译Debug版本就选Debug,想Release就选Release。可以都编译,现在先选一个。

    • VS选择生成按钮,选择重新生成解决方案,开始漫长的编译等待(我笔记本电脑很旧很慢了啊,大概2到3小时)
    • 编译完成后(结果应该大部分项目都成功,这里是199个,20几个失败我看了下大部分都是cuda相关的模块的,不知道是不是版本不对,暂不管,50几个跳过),会问你项目已被修改,选全部重新加载,等待就绪。
    • 在解决方案资源管理器中右键CmakeTargets下的INSTALL,选仅用于项目-》仅生产INSTALL,等待(可能十几分钟?)直到结束就ok
    • 这样一波操作之后应该可以build\lib文件夹下的Debug或Release文件夹下找到很多lib库(如果很少说明大部分都没编译成功咯),如果想Debug和Release都装就再选一次解决方案配置,重复一遍上述在VS下的操作。下面进行环境变量配置。
  • 系统环境配置和VS配置

    • 环境变量设置的路径应该是build\install下的…install\x64\vc14\bin。即,在我的电脑右键,管理,高级系统设置,高级,环境属性,系统变量列表中的path下加;G:\OpenCV-3.1.0\opencv\build\install\x64\vc14\bin
    • 在VS中,新建项目,到属性管理器Debug和Release下配置分别包含目录、库目录以及链接器输入。可以在Microsoft.Cpp.x64.user属性表中配置,这样以后只要你不换路径,新建项目就直接能用opencv了。例如,右键属性


    • VC++目录–\>包含目录,添加:

      G:\OpenCV-3.1.0\opencv\build\install\include

      G:\OpenCV-3.1.0\opencv\build\install\include\opencv

      G:\OpenCV-3.1.0\opencv\build\install\include\opencv2

    • VC++目录–\>库目录,添加:

      G:\OpenCV-3.1.0\opencv\build\install\x64\vc14\lib

      G:\OpenCV-3.1.0\opencv\build\install\x64\vc14\staticlib

    • 链接器–\>输入–\>附加依赖项,添加(注意,我这里也不知道该加哪些,直接把lib下的全部放进去了,或许不需要加那么多的吧……用哪些加那些好了。这里xx310d.lib放在前面表示优先使用Debug的库):

      opencv_aruco310d.lib

      opencv_bgsegm310d.lib

      opencv_bioinspired310d.lib

      opencv_calib3d310d.lib

      opencv_ccalib310d.lib

      opencv_core310d.lib

      opencv_cudaarithm310d.lib

      opencv_cudabgsegm310d.lib

      opencv_cudacodec310d.lib

      opencv_cudafeatures2d310d.lib

      opencv_cudafilters310d.lib

      opencv_cudaimgproc310d.lib

      opencv_cudastereo310d.lib

      opencv_cudawarping310d.lib

      opencv_cudev310d.lib

      opencv_datasets310d.lib

      opencv_dnn310d.lib

      opencv_dpm310d.lib

      opencv_face310d.lib

      opencv_features2d310d.lib

      opencv_flann310d.lib

      opencv_fuzzy310d.lib

      opencv_highgui310d.lib

      opencv_imgcodecs310d.lib

      opencv_imgproc310d.lib

      opencv_line_descriptor310d.lib

      opencv_ml310d.lib

      opencv_objdetect310d.lib

      opencv_optflow310d.lib

      opencv_photo310d.lib

      opencv_plot310d.lib

      opencv_reg310d.lib

      opencv_rgbd310d.lib

      opencv_saliency310d.lib

      opencv_shape310d.lib

      opencv_stereo310d.lib

      opencv_structured_light310d.lib

      opencv_surface_matching310d.lib

      opencv_text310d.lib

      opencv_tracking310d.lib

      opencv_ts310d.lib

      opencv_video310d.lib

      opencv_videoio310d.lib

      opencv_xfeatures2d310d.lib

      opencv_ximgproc310d.lib

      opencv_xobjdetect310d.lib

      opencv_xphoto310d.lib

      opencv_aruco310.lib

      opencv_bgsegm310.lib

      opencv_bioinspired310.lib

      opencv_calib3d310.lib

      opencv_ccalib310.lib

      opencv_core310.lib

      opencv_cudaarithm310.lib

      opencv_cudabgsegm310.lib

      opencv_cudacodec310.lib

      opencv_cudafeatures2d310.lib

      opencv_cudafilters310.lib

      opencv_cudaimgproc310.lib

      opencv_cudastereo310.lib

      opencv_cudawarping310.lib

      opencv_cudev310.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_structured_light310.lib

      opencv_surface_matching310.lib

      opencv_text310.lib

      opencv_tracking310.lib

      opencv_ts310.lib

      opencv_video310.lib

      opencv_videoio310.lib

      opencv_xfeatures2d310.lib

      opencv_ximgproc310.lib

      opencv_xobjdetect310.lib

      opencv_xphoto310.lib

    • 本来应该到这按理说就结束了,但或许有人和我一样,在项目中使用opencv库函数时会碰到缺少缺少opencv_xxx310d.dll文件的错误,此时网上的一种解决方法是找到(或下载)这些文件放到C:\Windows\system32\中。我采用另一种,在VS上右键项目,属性,调试,环境,添加系统环境变量(没错就是刚刚填过的path里加的,按理说应该不用加了啊- -);G:\OpenCV-3.1.0\opencv\build\install\x64\vc14\bin。这样就把这些dll文件路径告诉了VS了。

  • 愉快地使用opencv 3.1.0+contribute

参考

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值