opencv4.0.1+opencv_contrib-4.0.1+VS2015编译

摘要:

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

1.工具以及资源的准备

首先要清楚VC版本号与VS的对应关系

image.png

我的电脑上装的是vs2015,所以之后我会选择vc14进行后续的编译和安装

  • ✅opencv源代码

  • ✅opencv_contrib源代码

  • ✅cmake

  • ✅vs2015

  • opencv下载

源代码的地址是:https://github.com/opencv/opencv/,进入之后可以选择自己想要下载的版本,版本选择如图所示:

image.png

image.png

  • opencv_contrib代码下载

opencv_contrib代码地址是:https://github.com/opencv/opencv_contrib,其版本选择的方式和opencv源代码版本选择方式一致。

image.png

  • (3)CMake下载

下载地址:https://cmake.org/files/v3.11/cmake-3.11.3-win64-x64.msi

2.使用CMake生成编译文件

具体操作如图所示:

image.png

  • 🔲Where is the source code是opencv源码路径,即“源路径”

  • 🔲 Where to build the binaries是要生成opencv的vs工程路径,即“目的路径”

  • 点击Configure,弹出对话框,选择编译工程的平台。我选的是64位的VS2015

image.png

  • 点击Finish,即开始配置。这需要一定的时间,期间要下载一些依赖项,此时通畅的网络就起了关键作用,如果下载不全,可通过查看日志文件CMakeDownloadLog.txt手动下载。在完成第一次配置后,进行如下操作:
  1. 找到OPENCV选项中的OPENCV_EXTRA_MODULES_PATH选项,在选项后放入下载的opencv_contrib解压后的modules文件夹路径

注:这样就把opencv_contrib编译进去了。

image.png

  1. 搜索opencv_world,复选一下

注:这样,在调用dll时,只调用这一个就行了,不用根据功能选择了,省了些麻烦。

image.png

  1. 我的项目需要nonfree,所以我把这个也勾选了 (可省略)
  • ✅然后再按Configure进行配置,这时会出现报错的地方。

  • 主要的错误是依赖的文件下载失败的问题,不得不说 Github对中国用户确实不友好,经常遇到下载速度慢、下载失败的问题。为了解决这一问题,我们只能手动解决

(1) 去哪里下载?

  • 🔲打开download log file看看,如提示,我的在D:\opencv4.0.1\opencv-build\CMakeDownloadLog.txt,根据这个日志文件,我下载了这些:

image.png

  • 🔲CMake后会发现opencv-source根目录下会出现一个.cache的文件夹,里面有需要下载的内容,如果下载失败所有的内容都是0KB

(2)下载后放哪里:

显然下载后放.cache下对应的地方,然后改其名字为MD值+’-’+下载的文件名

image.pngimage.png

(3)最后再次CMake-Configure就成功通过了

直到没有红色出现,就说明没有新的变化可以用于更改。

可以看到之后的confugure都没有变红,再点击Generate。

完成后左下角显示Configuring done,Generating done。

完成之后如果在你的输出文件夹中找到OpenCV.sln文件,即表明编译成功完成。

image.png

3、vs2015编译

  • 🔲1、使用VS2015打开刚刚的“OpenCV.sln”文件
  • 🔲2、点击“生成—>重新生成解决方案”,这得等一段时间 顺利完成后的图片如下

image.png

注意你选择的是debug还是release,这就是debug版与release版的区别。bebug版有检测数据是否溢出的功能,release相对反应速度快。

我选择的是debug ,x64)

image

  • 🔲3、解决方案资源管理器—>CMakeTargets—>ALL_BUILD—>生成

image.png

  • 🔲4、生成Intall安装文件

解决方案资源管理器—>CMakeTargets—>INSTALL—>仅用于项目—>仅生成INSTALL(B)

  • 🔲5、最后到自定义的文件夹确认一下,找到install文件夹,进去查看里面的内容(如下图,注:对于后边配置环境,install文件夹作用就像配置opencv4.0.1时的build文件夹一样):

image.png

4、环境配置

搜索控制面板->系统和安全->系统
【高级系统设置】
【环境变量】
【系统变量】【Path】【编辑】

编译目录“ D:\openCV-4.0.1\build\install\x64\vc14\bin” 的完整路径 (如下图),根据你自己Cmake时的路径进行修改。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要基于 Android 的 OpenCV 4.0.1 和 OpenCV Contrib 4.0.1 进行编译,可以按照以下步骤进行: 1. 下载 OpenCV 4.0.1 和 OpenCV Contrib 4.0.1 的源代码: ``` git clone https://github.com/opencv/opencv.git cd opencv git checkout 4.0.1 cd .. git clone https://github.com/opencv/opencv_contrib.git cd opencv_contrib git checkout 4.0.1 ``` 2. 安装 Android NDK 和 Android SDK,并设置相应的环境变量。 3. 在 opencv 目录下创建一个 build 目录,并进入该目录: ``` mkdir build cd build ``` 4. 运行以下命令,生成 OpenCV Android 库: ``` cmake -DANDROID_ABI=armeabi-v7a \ -DANDROID_PLATFORM=android-21 \ -DANDROID_TOOLCHAIN=clang \ -DANDROID_STL=c++_static \ -DWITH_OPENCL=OFF \ -DWITH_IPP=OFF \ -DWITH_TBB=OFF \ -DWITH_MATLAB=OFF \ -DWITH_CUDA=OFF \ -DWITH_GTK=OFF \ -DBUILD_opencv_apps=OFF \ -DBUILD_ANDROID_EXAMPLES=OFF \ -DBUILD_ANDROID_PROJECTS=OFF \ -DBUILD_DOCS=OFF \ -DBUILD_EXAMPLES=OFF \ -DBUILD_PACKAGE=OFF \ -DBUILD_PERF_TESTS=OFF \ -DBUILD_TESTS=OFF \ -DOPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_TOOLCHAIN_FILE=../../android.toolchain.cmake \ ../ ``` 其中,`ANDROID_ABI` 表示 Android 平台架构,这里设置为 `armeabi-v7a`,表示 ARMv7 架构;`ANDROID_PLATFORM` 表示 Android 平台版本,这里设置为 `android-21`;`ANDROID_TOOLCHAIN` 表示使用的工具链,这里设置为 `clang`;`ANDROID_STL` 表示使用的 C++ 标准库,这里设置为 `c++_static`,表示静态链接;`WITH_OPENCL`、`WITH_IPP`、`WITH_TBB`、`WITH_MATLAB`、`WITH_CUDA`、`WITH_GTK` 分别表示是否启用 OpenCL、IPP、TBB、MATLAB、CUDA、GTK 等功能,这里都设置为 `OFF`;`BUILD_opencv_apps`、`BUILD_ANDROID_EXAMPLES`、`BUILD_ANDROID_PROJECTS`、`BUILD_DOCS`、`BUILD_EXAMPLES`、`BUILD_PACKAGE`、`BUILD_PERF_TESTS`、`BUILD_TESTS` 分别表示是否编译 OpenCV 应用程序、Android 示例、Android 项目、文档、示例、打包、性能测试、测试,这里都设置为 `OFF`;`OPENCV_EXTRA_MODULES_PATH` 表示 OpenCV Contrib 目录的路径;`CMAKE_BUILD_TYPE` 表示编译类型,这里设置为 `Release`;`CMAKE_TOOLCHAIN_FILE` 表示使用的交叉编译工具链文件。 5. 运行以下命令,编译生成 OpenCV Android 库: ``` make -j4 ``` 其中,`-j4` 表示使用 4 个核心进行编译。 6. 在 build 目录下会生成一个 `sdk` 目录,其中包含编译好的 OpenCV Android 库。 可以将该库导入到 Android Studio 中,然后在项目中使用该库提供的函数进行开发。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值