天天看点

VS2019+openCV4.5+openCV4.5 contrib扩展模块安装1、VS2019安装

VS2019+openCV4.5+openCV4.5 contrib扩展模块安装

1、VS2019安装

首先第一步安装VS2019。

https://visualstudio.microsoft.com/zh-hans/vs/

社区版免费,只要登陆账号即可。

2、opencv和扩展模块下载

OpenCV4.5下载链接:https://opencv.org/releases/

OpenCV4.5 contrib下载链接:https://github.com/opencv/opencv_contrib/releases

Cmaker下载链接:https://cmake.org/download/

VS2019+openCV4.5+openCV4.5 contrib扩展模块安装1、VS2019安装

首先找到并解压cmaker,然后在bin文件夹下找到cmaker-gui.exe,点击即可。

VS2019+openCV4.5+openCV4.5 contrib扩展模块安装1、VS2019安装

然后,在where is source code中浏览到OpenCV4.5的source文件夹,where to build the binaries浏览到你新建立的空文件夹.

VS2019+openCV4.5+openCV4.5 contrib扩展模块安装1、VS2019安装

之后点击Configure,会弹出让你选择VS版本,在这里我们选择VS2019,但请注意,下面Optional toolset to use选择x64.

点击finish之后,点击configure,会出现大片红色,这里,先更改红色中的部分选项:

  1. 手动勾选BUILD_opencv_world。勾BUILD_opencv_world,主要是把所有的lib文件都弄到一个opencv_world450d.lib中方便配置,若不勾选在最后会产生大量.lib文件,导致最后配置Opencv到vs会太麻烦,有过OpenCV动态链接库的人都知道;
  2. OPENCV_ENABLE_NONFREE是为了在编译成功后可以使用具有专利保护的算法,如果该变量不被选中,就不能使用例如SIFT算法在内的具有专利保护的算法,;
  3. 找到“OPENCV_EXTRA_MODULES_PATH”变量,该变量的含义是告诉编译器扩展包的源码在哪里,选择我们刚才下载的opencv_contrib安装包里的modules文件夹。如果这个变量为空,在编译过程中也不会报错,只是安装了OpenCV的基础版。

勾选完上述操作后,再次点击configure·,直至所有的都变白,但还是要注意下面画红框的是否报错,如果有报错,你不管,后面的步骤还会在出错,进行不下去.

下面我们对cmaker出现错误进行解读,节选自其他博客,加上自己理解:

VS2019+openCV4.5+openCV4.5 contrib扩展模块安装1、VS2019安装

这几个错误是类似的就是Download failed。那只能手动下载了(没网络的换个有网的下载,下载一直失败也直接手动下载,手动下载不了的试着打开vpn),那么问题来了。

去哪里下载?

下载后放哪里?

仔细看错误信息,可以打开download log file看看,如提示,我的在D:\opencv_4.5\opencv_contrib\opencv_build/CMakeDownloadLog.txt,打开可以看到如下内容:

VS2019+openCV4.5+openCV4.5 contrib扩展模块安装1、VS2019安装

CMake后会发现source根目录下会出现一个.cache的文件夹,里面有需要下载的内容,如果下载失败所有的内容都是0KB(只是路径图)如下图:

VS2019+openCV4.5+openCV4.5 contrib扩展模块安装1、VS2019安装

再看看CMakeDownloadLog.txt的第一句:use_cache "D:/Kits/OpenCV/opencv-source/opencv-4.5/.cache"说的就是这个意思。在看看第二句:do_copy “opencv_ffmpeg.dll” “b8120c07962d591e2e9071a1bf566fd0” “https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll” “D:/Kits/OpenCV/opencv-source/opencv-4.5/build/3rdparty/ffmpeg”,说的是从https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll这个网址下载opencv_ffmpeg.dll到D:/Kits/OpenCV/opencv-source/opencv-4.5/build/3rdparty/ffmpeg,其MD值为b8120c07962d591e2e9071a1bf566fd0,然后拷贝到.cache对应的文件夹下(该文件名为MD值+’-’+下载的文件名(也可以复制原本的要下载文件的文件名))。那么这个文件就类似脚本进行自动化下载,那么我们就知道手动要怎么搞了。

回答-去哪里下载:

https://raw.githubusercontent.com/opencv/opencv_3rdparty/0a0e88972a7ea97708378d0488a65f83e7cc5e69/ffmpeg/opencv_ffmpeg.dll

回答-下载后放哪里:

很显然下载后放.cache下对应的地方,然后改其名字为MD值+’-’+下载的文件名。比如opencv_ffmpeg.dll这个文件下载后凡在.cache下的ffmpeg下,然后改名为b8120c07962d591e2e9071a1bf566fd0-opencv_ffmpeg.dll替换原来0KB的那个文件。

整个过程大概就是这样,但有几点特别重要:

  1. https://raw.githubusercontent.com/opencv/opencv_3rdparty/fe71c0ad807fdc33c2178e48e488f1e9b177c39a/ffmpeg/ffmpeg_version.cmake 无法直接下载,而是直接打开了ffmpeg_version.cmake,可以右键网页选择另存为 ffmpeg_version.cmake.txt,然后再改为ffmpeg_version.cmake。这里如果自己新建一个txt,然后直接将网页上的内容拷进去,然后再该后缀为.cmake是不行的,会提示md5不匹配。
  2. 将 ippicv.cmake 的https://raw.githubusercontent.com

    修改为:https://raw.staticdn.net 根本不行

  3. 下载.i文件时,打开网址直接显示文档,一定要将网页另存为.i 文件,如果复制的话是不能用的。
  4. 打开vpn。

最后再次CMake-Configure就成功通过了

后面就比较简单了,网上讲的人也比较多,我就写到这吧。

继续阅读