在安装opencv的时候,要是加装了opencv_contrib模块,往往会遇到下载某些内容卡住了,这个时候就要自己下载,然后修改源码了,一般都是在cmake里面的download*.cmake,

类似这样子的

function(download_vgg_descriptors dst_dir status_var)
  set(OPENCV_3RDPARTY_COMMIT "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d")

  set(ids VGG_48 VGG_64 VGG_80 VGG_120)
  set(name_VGG_48 "vgg_generated_48.i")
  set(name_VGG_64 "vgg_generated_64.i")
  set(name_VGG_80 "vgg_generated_80.i")
  set(name_VGG_120 "vgg_generated_120.i")
  set(hash_VGG_48 "e8d0dcd54d1bcfdc29203d011a797179")
  set(hash_VGG_64 "7126a5d9a8884ebca5aea5d63d677225")
  set(hash_VGG_80 "7cd47228edec52b6d82f46511af325c5")
  set(hash_VGG_120 "151805e03568c9f490a5e3a872777b75")

  set(${status_var} TRUE PARENT_SCOPE)
  foreach(id ${ids})
    ocv_download(FILENAME ${name_${id}}
                 HASH ${hash_${id}}
                 URL
                   "${OPENCV_VGGDESC_URL}"
                   "$ENV{OPENCV_VGGDESC_URL}"
                   "https://raw.githubusercontent.com/opencv/opencv_3rdparty/${OPENCV_3RDPARTY_COMMIT}/"
                 DESTINATION_DIR "${dst_dir}"
                 ID "xfeatures2d/vgg"
                 RELATIVE_URL
                 STATUS res)
    if(NOT res)
      set(${status_var} FALSE PARENT_SCOPE)
    endif()
  endforeach()
endfunction()

set(OPENCV_3RDPARTY_COMMIT "fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"),即OPENCV_3RDPARTY_COMMIT="fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d"

这个时候找下载链接要这样https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/是前缀,后缀是name_VGG_*这样格式的变量,完整的下载链接是

https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i

对于.i后缀的文件可能不能直接下载,那就打开以后,按CTRL+S键保存起来,也可以这样子

curl https://raw.githubusercontent.com/opencv/opencv_3rdparty/fccf7cd6a4b12079f73bbfb21745f9babcd4eb1d/vgg_generated_120.i > 151805e03568c9f490a5e3a872777b75-vgg_generated_120.i

下载好以后要修改name,是放到opencv主目录.cache目录里,不存在的话可以自己创, 子目录是这样子的./opencv/.cache/xfeatures2d/vgg,xfeatures2d/vgg也可以在这里找到

修改name,是按照这个规则修改的,对于hash_VGG_120=151805e03568c9f490a5e3a872777b75,vgg_generated_120.i要修改成这样子,151805e03568c9f490a5e3a872777b75-vgg_generated_120.i

"https://raw.githubusercontent.com/opencv/opencv_3rdparty/${OPENCV_3RDPARTY_COMMIT}/"
                 DESTINATION_DIR "${dst_dir}"
                 ID "xfeatures2d/vgg" 

这里再举个例子,存在些不同点

对于ippicv,opencv/3rdparty/ippicv/ippicv.cmake文件

下载的链接就是

opencv_3rdparty/ippicv at ippicv/master_20191018 · opencv/opencv_3rdparty · GitHubOpenCV - 3rdparty. Contribute to opencv/opencv_3rdparty development by creating an account on GitHub.https://github.com/opencv/opencv_3rdparty/tree/ippicv/master_20191018/ippicv

参考:fatal error: boostdesc_bgm.i: No such file or directory · Issue #1301 · opencv/opencv_contrib (github.com)https://github.com/opencv/opencv_contrib/issues/1301(3条消息) ubuntu安装opencv无法下载IPPICV的问题 ippicv_2020_lnx_intel64_20191018_general.tgz_知难行更难-CSDN博客_generalhttps://blog.csdn.net/gadwgdsk/article/details/107423625?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-8.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2~default~CTRLIST~default-8.no_search_link

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐