【OpenCV】编译OpenCV时,FFmpeg或ippicv下载不成功的解决方案,以及其它可能下载不成功问题的解决方案

您所在的位置:网站首页 CMake编译OPenCV 【OpenCV】编译OpenCV时,FFmpeg或ippicv下载不成功的解决方案,以及其它可能下载不成功问题的解决方案

【OpenCV】编译OpenCV时,FFmpeg或ippicv下载不成功的解决方案,以及其它可能下载不成功问题的解决方案

2024-07-10 20:30| 来源: 网络整理| 查看: 265

文章目录 不能成功下载的其它文件不能成功下载 FFmpeg 或 IPPICV首先前往GitHub下载相应的库。复制库文件修改 cmake 文件FFmpeg的配置ippicv的配置 直接点击加入 OpenCV QQ 群 61341323

测试使用的 OpenCV 版本 需要用到的文件:链接: 提取码: 5286

不能成功下载的其它文件

如果有使用 opencv_contrib 可能会出现某些文件下载不成功的问题,目前发现的有以下格式的文件:

wechat_qrcode 模块 detect.caffemodeldetect.prototxtsr.caffemodelsr.prototxt xfeatures2d 模块 boostdesc_*vgg_generated_* face 模块 face_landmark_model.dat

这个问题很好解决,如果能够看懂 ${OpenCV_BINARY_DIR}/CMakeDownloadLog.txt 中的内容,可以根据里面的内容进行操作。看不懂的话就直接复制上面链接中下载下来的 opencv 文件夹到 ${OpenCV_BINARY_DIR} 即可。

不能成功下载 FFmpeg 或 IPPICV

当前的 OpenCV 版本在 CMake 中 Configure 的时候虽然不会再阻塞在下载部分,也不会再导致项目不能生成,但 CMake 还是会提示这两个库没有成功下载,这个需要自己在输出部分查看,如下图: ffmpeg ippicv

下面是解决步骤

首先前往GitHub下载相应的库。

链接:opencv/opencv_3rdparty 建议不要 clone 整个仓库,貌似比较大且慢。

具体用哪一分支可用根据 cmake 文件进行获取。

FFmpeg 对应的位置在 path to opencv/3rdparty/ffmpeg/ffmpeg.cmake

在第 1 行可以找到所需要下载的分支名,即 Binaries branch name: ffmpeg/master_20200908 在第 3 行可以找到对应提交记录的哈希值,即 6152e132572dfdaa32887eabeb7199bef49b14dc

这里直接给出 GitHub 链接 ffmpeg/master_20200908 可以直接进行下载。也可以 clone 整个仓库后进行分支切换(不建议)

ippicv 对应的位置在 path to opencv/3rdparty/ippicv/ippicv.cmake

在第 26 行可以找到所需要下载的分支名(这里以 win64 为例)。可以通过 OPENCV_ICV_NAME 变量的定义 来获取,如:set(OPENCV_ICV_NAME “ippicv_2020_win_intel64_20191018_general.zip”),其中的时间为 20191018,那么选对应的分支即可。 在第 5 行可以找到对应提交记录的哈希值,即 a56b6ac6f030c312b2dce17430eef13aed9af274

这里直接给出 GitHub 链接 ippicv/master_20191018 可以直接进行下载。也可以 clone 整个仓库后进行分支切换(不建议)

复制库文件 将 ffmpeg 目录中的 ffmpeg_version.cmake opencv_videoio_ffmpeg.dll opencv_videoio_ffmpeg_64.dll 三项复制到 ${OpenCV_BINARY_DIR}\opencv\3rdparty\ffmpeg 目录下。将 ippicv_win 文件夹复制到 ${OpenCV_BINARY_DIR}\opencv\3rdparty\ippicv 目录下,ippicv 目录可能不存在,自己创建即可。ippicv_win 根据系统不同,可能为其它的名称,都在前面步骤中下载的文件中,解压即可。 修改 cmake 文件

在这里插入图片描述 在 CMake 中重新 Configure 即可。

以下是原文部分,请根据自己使用的 OpenCV 版本酌情参考。 以下是原文部分,请根据自己使用的 OpenCV 版本酌情参考。 以下是原文部分,请根据自己使用的 OpenCV 版本酌情参考。

在自己编译OpenCV时,因为种种原因可能会导致FFmpeg或ippicv下载不成功的问题,可以通过手动配置来解决这类问题,当然也可以直接配置之后再编译。

在进行配置之前,首先前往GitHub下载相应的库。

链接:opencv/opencv_3rdparty

这里写图片描述

链接打开之后页面内容大致如上图所示,图中圈出了ffmpeg和iipicv的不同版本,具体用哪一版就各取所需吧。明确版本之后点击相应的链接进入下载。

下载完成之后解压,位置不重要。 这里写图片描述

到此,准备完毕。

FFmpeg的配置

将*"…\opencv_3rdparty-ffmpeg-master_20160715\ffmpeg"* 目录中的 ffmpeg_version.cmake、opencv_ffmpeg.dll、opencv_ffmpeg_64.dll 三项复制到 “path to your OpenCV\opencv\sources\3rdparty\ffmpeg” 目录下。 这里写图片描述 将上图中的三项复制到下图的目录中 这里写图片描述

编辑 ffmpeg.cmake 在 “path to your OpenCV\opencv\sources\3rdparty\ffmpeg” 中打开文件 ffmpeg.cmake ,将其内容修改为:

message(STATUS "FFMPEG: Package successfully downloaded") include(${CMAKE_CURRENT_LIST_DIR}/ffmpeg_version.cmake)

保存内容。

到此,ffmpeg配置完毕。

ippicv的配置

在前面下载解压的目录*"…\opencv_3rdparty-ippicv-master_20151201\ippicv"* 中将ippicv_windows_20151201.zip 解压到当前目录。 这里写图片描述 在 “path to your OpenCV \opencv\sources\3rdparty\ippicv” 中创建文件夹unpack,将解压得到的ippicv_win 复制到新创建的unpack 中。 这里写图片描述

编辑 downloader.cmake 将downloader.cmake 的内容修改为:

# # The script downloads ICV package # # On return this will define: # OPENCV_ICV_PATH - path to unpacked downloaded package # function(_icv_downloader) # Commit SHA in the opencv_3rdparty repo set(IPPICV_BINARIES_COMMIT "81a676001ca8075ada498583e4166079e5744668") # Define actual ICV versions if(APPLE) set(OPENCV_ICV_PACKAGE_NAME "ippicv_macosx_20151201.tgz") set(OPENCV_ICV_PACKAGE_HASH "4ff1fde9a7cfdfe7250bfcd8334e0f2f") set(OPENCV_ICV_PLATFORM "macosx") set(OPENCV_ICV_PACKAGE_SUBDIR "/ippicv_osx") elseif(UNIX) if(ANDROID AND NOT (ANDROID_ABI STREQUAL x86 OR ANDROID_ABI STREQUAL x86_64)) return() endif() set(OPENCV_ICV_PACKAGE_NAME "ippicv_linux_20151201.tgz") set(OPENCV_ICV_PACKAGE_HASH "808b791a6eac9ed78d32a7666804320e") set(OPENCV_ICV_PLATFORM "linux") set(OPENCV_ICV_PACKAGE_SUBDIR "/ippicv_lnx") elseif(WIN32 AND NOT ARM) set(OPENCV_ICV_PACKAGE_NAME "ippicv_windows_20151201.zip") set(OPENCV_ICV_PACKAGE_HASH "04e81ce5d0e329c3fbc606ae32cad44d") set(OPENCV_ICV_PLATFORM "windows") set(OPENCV_ICV_PACKAGE_SUBDIR "/ippicv_win") else() return() # Not supported endif() set(OPENCV_ICV_UNPACK_PATH "${CMAKE_CURRENT_LIST_DIR}/unpack") set(OPENCV_ICV_PATH "${OPENCV_ICV_UNPACK_PATH}${OPENCV_ICV_PACKAGE_SUBDIR}") message(STATUS "ICV: Package successfully downloaded") set(OPENCV_ICV_PATH "${OPENCV_ICV_PATH}" PARENT_SCOPE) endfunction() _icv_downloader()

保存内容。 到此,ippicv配置完毕。

开始快乐的编译OpenCV吧!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3