win10+vs2017下安装opencv3.4.5+contrib遇到的问题

要安装opencv+contrib, 必须先基本会用CMake,我下载的是CMake1.10

基本过程

  • 先下载opencv3.4.5的源码和opencv_contrib3.4.5。
    都在github中:
    opencv3.4.5源码
    opencv_contrib源码
    解压后的文件夹都放在一个目录(opencv3.4.5+contrib)中,还在这里面新建一个build文件夹

  • 在"where is the source code"中选择opencv的源码文件
    在"where to build the binaries"中选择opencv3.4.5+contrib/build

  • 之后就是configure和generate以及open project和用vs编译

  • vs编译,细说一下,debug+x64下编译然后install,release+x64下编译然后install,最后我发现在opencv3.4.5+contrib/build/install的库目录中有很多以d.lib或.lib结尾的文件,比如opencv_world345.lib,```opencv_world345d.lib``。
    如何install: 右击install->仅用于项目->仅生成install
    在这里插入图片描述

  • 配置环境变量

问题


一. 有很多文件下载不了

在configure和generate后会有很多warming,表示文件下载失败
会产生很多以以下开头的日志信息,日志位于opencv3.4.5+contrib/build/CMakeDownloadLog.txt

#do_copy "vgg_generated_80.i" "7cd47228edec52b6d82f46511af325c5" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i" "D:/APP/opencv3.4.5+contrib/build/downloads/xfeatures2d"

原因

在国内根本没法下载这些在国外的文件

解决方案

  • 这里有个很方便的地方,就是不管什么目录的什么文件,都先保存在opencv3.4.5+contrib/sources/.cache中,.cache中有ffmpeg,ippicv等文件夹,都是存放不同类型的文件的。
  • 所以这个时候vpn就很重要了,迅雷下载也帮了忙
  • 解释一下上面的CMakeDownloadLog.txt文件中的信息的意思
    总体来说就是从一个网站下载东西然后保存到一个最终的文件夹中(而不是.cache)
    7cd47228edec52b6d82f46511af325c5 表示md5值,我也不知道干嘛的。
  • 从[https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_80.i ]中下载东西保存到任意文件夹中,在opencv3.4.5+contrib/sources/.cache中有一个未下载完的文件叫做:7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i, 名字前面有个md5值,然后就把下载好的替换.cache中未下载好的,并改名字为7cd47228edec52b6d82f46511af325c5-vgg_generated_80.i
    我也不知道到底要不要保证这个md5值必须一样
  • 完成所有文件的替换后,就重新generate
  • 还有的文件不用去网站下载,可以用迅雷创建一个任务,把链接粘贴进去。

二. 语法错误


我发生的语法错误是:

CMake Error at 3rdparty/ippicv/ippicv.cmake:54 (ocv_download):
  Syntax error in cmake code at

    D:/APP/opencv3.4.5+contrib/sources/3rdparty/ippicv/ippicv.cmake:58

  when parsing string

    $env{opencv_ippicv_url}

  Syntax $env{} is not supported.  Only ${}, $ENV{}, and $CACHE{} are
  allowed.
Call Stack (most recent call first):
  cmake/OpenCVFindIPP.cmake:243 (download_ippicv)
  cmake/OpenCVFindLibsPerf.cmake:12 (include)
  CMakeLists.txt:784 (include)

因为我在configure之后,填写OPENCV_EXTRA_MODULES_PATH时,粘贴过去的,不是browser的。

三. 试图更改下载ippicv_2019_win_intel64_20180723_general.zip的路径时发生了错误


CMake Error at 3rdparty/ippicv/ippicv.cmake:54 (ocv_download):
  Syntax error in cmake code at

    D:/APP/opencv3.4.5+contrib/sources/3rdparty/ippicv/ippicv.cmake:58

  when parsing string

    $env{opencv_ippicv_url}

  Syntax $env{} is not supported.  Only ${}, $ENV{}, and $CACHE{} are
  allowed.
Call Stack (most recent call first):
  cmake/OpenCVFindIPP.cmake:243 (download_ippicv)
  cmake/OpenCVFindLibsPerf.cmake:12 (include)
  CMakeLists.txt:784 (include)

我把ippicv.cmake第47行的"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/"
修改成了file://D:/documents/a.zip, 其实这里不用加上``a.zip,但要加上最后的/```。
我这样做的目的是,直接从本机下载而不是网络。因为我已经自己下载好要用的文件了

四. 莫名其妙的python路径错误的问题

我也没解决,直接把python路径从环境变量中删了,然后从新从头开始configure就好了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值