【OpenCV】编译OpenCV时,FFmpeg或ippicv下载不成功的解决方案,以及其它可能下载不成功问题的解决方案 |
您所在的位置:网站首页 › CMake编译OPenCV › 【OpenCV】编译OpenCV时,FFmpeg或ippicv下载不成功的解决方案,以及其它可能下载不成功问题的解决方案 |
文章目录
不能成功下载的其它文件不能成功下载 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 还是会提示这两个库没有成功下载,这个需要自己在输出部分查看,如下图: 下面是解决步骤 首先前往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 文件
以下是原文部分,请根据自己使用的 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 解压到当前目录。 编辑 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 |