从源代码构建OpenCV时速度极慢,很有可能是卡在了下载IPPICV这一步。如何找到正确的下载地址可以参考这篇文章:

手动安装OpenCV下的IPPICV加速库
网络状况不佳的情况下手动安装IPPICV加速库。

这篇文章将介如何正确使用下载下来的安装文件,一共分三步。

找到日志文件

使用CMake构建OpenCV时,与编译相关的信息都保存在日志文件中。其中涉及到下载文件的日志保存在构建目录下,例如我的当前目录为:

/Users/Robin/Downloads/opencv/build/

在该目录下可以找到下载日志文件` CMakeDownloadLog.txt`。

获取下载地址

打开该目录,可以看到与IPPICV相关的下载日志:

#use_cache "/Users/Robin/Downloads/opencv/.cache"
#do_unpack "ippicv_2020_mac_intel64_20191018_general.tgz" "1c3d675c2a2395d094d523024896e01b" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_mac_intel64_20191018_general.tgz" "/Users/Robin/Downloads/opencv/build/3rdparty/ippicv"
#cmake_download "/Users/Robin/Downloads/opencv/.cache/ippicv/1c3d675c2a2395d094d523024896e01b-ippicv_2020_mac_intel64_20191018_general.tgz" "https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_mac_intel64_20191018_general.tgz"
#try 1

从日志可以看出,要下载的文件为:

https://raw.githubusercontent.com/opencv/opencv_3rdparty/a56b6ac6f030c312b2dce17430eef13aed9af274/ippicv/ippicv_2020_mac_intel64_20191018_general.tgz

然后就可以使用你熟悉的下载工具来完成下载。

手动缓存文件

日志文件中还透漏了一个重要的信息,即下载文件的缓存目录。在手动安装IPPICV这篇文章中我没有介绍文件下载后该如何安装。今天制作OpenCV编译视频时才发现这篇写于2017年的文章被大量抄袭且没有注明来源。更加糟糕的是,抄袭者通过手动修改CMake文件的方式来指定IPPICV包的安装位置。

我个人不赞成这种做法。在使用第三方开源代码时,除非有足够令人信服的理由,才可以对源代码做出修改。为了“指定下载文件”这件小事儿做出“修改源码”这种高风险的行为,是不值得提倡的。正确的做法是:利用OpenCV现有的缓存规则。

在日志中可以明确的找到本地缓存目录。例如我的日志中显示缓存文件为:

/Users/Robin/Downloads/opencv/.cache/ippicv/1c3d675c2a2395d094d523024896e01b-ippicv_2020_mac_intel64_20191018_general.tgz

在下载完成后,直接手动将压缩包放置到该位置即可。这样OpenCV在构建时会自动识别并正确加载。

Enjoy~