opencv4.12+opencv_contrib-4.1.2+VS2015编译笔记

摘要

由于要使用一些opencv新加入的功能,所以要自己编译 opencv_contrib,因为最新版本是opencv_contrib-4.1.2所以就选择了这个版本。博客记载编译过程与过程中所遇到的问题,以及解决办法。问题可以简单的描述为在cmake过程中下载一些依赖库失败(ffmpeg、ippicv、xfeatures2d等);
96444a4645753aaafa296479665c9185-opencv_ffmpeg_64 下载失败
90260a4da737fc045c9279567313ee9d-opencv_videoio_ffmpeg_64 下载失败
ippicv下载不成功

1.工具以及资源的准备

2.使用CMake生成编译文件

具体操作如图所示:
opencv4.12+opencv_contrib-4.1.2+VS2015编译笔记
source code路径:下载opencv源码解压后的路径;
build the binaries:工程生成路径。
选择好路劲后点击Configure按钮,就会生成红色上面的界面,不出意外,配置过程中会有一些错误。
接下来先不说错误,错误会在最后讲解。找到OPENCV选项中的OPENCV_EXTRA_MODULES_PATH选项,在选项后放入下载的opencv_contrib解压后的modules文件夹路径。具体如图所示:
opencv4.12+opencv_contrib-4.1.2+VS2015编译笔记
接着在BUILD组下找到opencv_world,复选一下,如下图所示:
opencv4.12+opencv_contrib-4.1.2+VS2015编译笔记
这下cmake部分就选择完了,该解决错误了。

上面已经说了,主要的错误是依赖的文件下载失败的问题,不得不说 Github对中国用户确实不友好,经常遇到下载速度慢、下载失败的问题。为了解决这一问题,我们只能手动解决
自己去opencv三方库下载需要的东西:opencv/opencv_3rdparty
首先要找到下载文件放在哪,本人的放在 D:\opencv4.12\opencv-4.1.2.cache 路径下,即放在opencv源码文件夹下的 .cache 文件夹。进去一下,会发现有好几个文件夹,博文只讲解如何解决FFmpeg下载问题,其它的套路都是一样的。
进入上述三方库网页之后你会发现,妈呀这么多版本的三方库,哪一个才是我需要的呢?嗯,这确实是一个大难题,经过博主几个小时的摸索之后,发现有迹可循。D:\opencv4.12\opencv-4.1.2\3rdparty\ffmpeg 路径下的ffmpeg.cmake文件中就有告诉我们用哪一个才是我们需要的,如下图所示:
opencv4.12+opencv_contrib-4.1.2+VS2015编译笔记
在opencv三方库中找到对应文件,下载对应的dll文件或其它文件。以ffmpeg的dll举例,将下载的dll放在 D:\opencv4.12\opencv-4.1.2.cache\ffmpeg 文件夹中,即源码文件夹下 .cache文件夹下 ffmpeg文件夹中,最后就是更改名字,在对应的dll文件明前加入相应的前缀。具体如图所示:
opencv4.12+opencv_contrib-4.1.2+VS2015编译笔记
为什么我的文件夹中有好几份副本,因为这个过程是我自己摸索出来的,走了不少弯路。为了解决下载问题,我又去自己搭建了*,以为是网络限制的原因,不过确实,用*在GitHub上下载东西是校园网的数十倍

解决这下下载问题,一次点击Configure,Generate、open project即可,最后就是编译。ALL_Build之后,单独编译Install。Install的作用是方便后续使用。

记载一下自己的艰辛历程,上次编译4.0的时候遇到过这样的问题,但是解决后没有记载下来,导致我现在遇到这种问题又要重新摸索,所以记载自己的摸索日志,给自己、别人都提供方便。