opencv3.1.0+contrib CMake 编译配置全流程

项目要用到contrib库,两个月前配过一次,当时就因为实验室不能联网,每天开热点上https://raw.githubusercontent.com/下载,登不上去总是网络超时所以失败。现在找到了相关解决办法,在下面tips内有提到。这一次终于成功了,也参考了论坛许多大佬的踩坑经验,记录一下,希望对大家有帮助。
配置要素:
win10,Visual Studio 2013 ,OpenCV3.1.0,和对应contrib库

一、opencv + contrib 源码

镜像源
https://www.bzblog.online/opencv/
https://www.bzblog.online/opencv/opencv_contrib/
建议镜像下载,快很多,开热点都能下载下来

  1. 没有安装opencv的情况
    要对应版本下,比如我用的是opencv3.1.0,下载的opencv_contrib也得是这个版本;
    因为cmake要用源码,所以没有opencv的可以找zip等压缩文件下载;
  2. 安装过exe版本的也没关系,进入opencv安装目录就有一个sources文件夹,这个就是源码,后续cmake编译的时候,就可以直接填这个目录作为源目录
    比如我的目录是这个,E:\opencv\sources

二、CMake 下载安装

官网下载一个适配电脑的较新版本就行,随便挑个顺眼的版本下就好了

直接复制编译好的文件包也可

三、CMake 编译opencv流程

  1. 解压先前从官网上下载下来的两个压缩包,获得文件夹:opencv310、opencv310_contrib,放置位置自己记得就好了,自己记不得就单独建一个记得住的目录

  2. 任意位置新建一个文件夹…\build,作为编译目标文件夹

  3. 打开cmake的gui,源填opencv310\source路径,target填…\build路径

  4. 第一次点configure,选择需要的vs版本进行编译,我的是Visual Studio 2013

  5. cmake过程中configure、清bug,指南见下面的tips,目前主流错误就是ffmpeg的下载网站被墙导致网络超时or根本没联网所以建的空文件哈希码报错,解决完这一步问题,configure第一次完成以后,就可以进入下一步,添加扩展库

  6. 添加OPENCV_EXTRA_MODULES_PATH的附加项的路径为contrib目录下的modules文件夹
    ……\opencv-contrib3.1.0\modules

  7. 重新configure,直到configure内容没有红色,目录全白以后就可以generate了

  8. generate,成功

  9. 打开sln,用编译对应的vs版本,opencv310+vs13,我好像编译只能x86,x64报错过多

    先生成解决方案,再单独生成INSTALL文件,release和debug模式都编译

  10. 生成完成后,在build目录下会出现完整的install文件夹,后续环境配置和应用都在…/build/install/…文件夹目录

tips:解决cmake编译过程中configure产生的error:

因为网路问题无法加载opencv_ffmpeg.dll、opencv_ffmpeg_64.dll和ffmpeg_version.cmake和ippicv_windows_20151201.zip

两种办法:

  1. 根据ffmpeg文件夹下的cmake文件,找到对应的网址提前下载后替换对应文件
    这个网址在configure报错里就会直接写出,比如:https://raw.githubusercontent.com/Itseez/opencv_3rdparty/8aeefc4efe3215de89d8c7e114ae6f7a6091b8eb/ffmpeg/ffmpeg_version.cmake
    ffmpeg文件下的三个需要下载的文件前面网址目录都一样,只有最后的下载文件名,ffmpeg_version.cmake,这个部分不一样,每次替换掉就好了,从正确网址下面下载的文件hash码就是对的,下载下来以后放在对应的文件夹里就好了,对应的文件路径在configure的报错详细内容里也可以直接找到
    如果还是进不去网站,就用加速网站 https://ghproxy.com/ ,再把下载网址复制在网站的搜索框就好了
    但是ffmpeg_version.cmake这个文件可能会在网站里直接进去而不是下载文件,这时候可以参考下面方法2,更改配置文件的下载网址

  2. 在xxx.cmake文件里,把下载网址前添加“https://ghproxy.com/”即如下所示,指引到加速网址下载
    加速网站其实就是把下载网址加了这个代理的前缀,所以可以之间找到ffmpeg文件夹下的。cmake文件,把里面的下载网址前面也加上这个前缀 https://ghproxy.com/https://raw.githubusercontent.com/Itseez/opencv_3rdparty/8aeefc4efe3215de89d8c7e114ae6f7a6091b8eb/ffmpeg/……

  3. 如遇到离线cmake,必须使用1方法进行编译,对应于310版本的这四个文件,有备份(该资源可0积分下载)

四、vs+opencv 工程使用配置

(与exe无扩展库版本opencv配置流程无异,只是要多添加可执行文件目录,库目录多了一项静态库,使用cmake生成的3.0版本以后的子库没有封装,添加附加依赖项的时候要像3.0之前的版本一样把所有子库名字都添进去)
下面配置环境的目录,都是在我们build文件夹下,编译之后生成的install文件里找:

  1. 添加系统环境变量

    ……\build\install\x86\vc12\bin

  2. 可执行文件目录

    ……\build\install\x86\vc12\bin

  3. 包含目录

    ……\build\install\include

    ……\build\install\include\opencv

    ……\build\install\include\opencv2

  4. 库目录

    ……\build\install\x86\vc12\lib
    ……\build\install\x86\vc12\staticlib

  5. 添加依赖项
    (debug的依赖项,release不想写了,这个是参考一位博主,直接粘贴过来的,想要release的,把所有后缀d去掉就好了,也可以直接用cmd进入lib目录用命令直接把文件名都写入txt,就全有了)

    opencv_aruco310d.lib

    opencv_bgsegm310d.lib

    opencv_bioinspired310d.lib

    opencv_calib3d310d.lib

    opencv_ccalib310d.lib

    opencv_core310d.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_stitching310d.lib

    opencv_structured_light310d.lib

    opencv_superres310d.lib

    opencv_surface_matching310d.lib

    opencv_text310d.lib

    opencv_tracking310d.lib

    opencv_ts310d.lib

    opencv_video310d.lib

    opencv_videoio310d.lib

    opencv_videostab310d.lib

    opencv_xfeatures2d310d.lib

    opencv_ximgproc310d.lib

    opencv_xobjdetect310d.lib

    opencv_xphoto310d.lib

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐