一、下载
具体版本自己选择,OpenCV与扩展模块Opencv_contrib版本要相同。
1.下载OpenCV
https://github.com/opencv/opencv/releases
2.下载扩展模块Opencv_contrib
https://github.com/opencv/opencv_contrib/releases
3.下载Cmake(选择适配自己电脑的版本,如win64-x64.zip)
https://cmake.org/files/LatestRelease/
全部解压好。
二、编译
1.打开Cmake软件,开始配置;
在解压包的bin文件夹下。
2.添加Opencv源码文件夹下的的sources文件夹;新建目标文件夹作为Cmake编译后文件保存的位置,最好在相同文件夹下。
3.此时有弹窗,选择对应的版本即可,点击finish
4.接下来开始编译(为了给大家演示错误,我换了个文件夹,没啥影响)
在红色框内勾选BUILD_opencv_world(为了避免后期许多lib文件);勾选OPENCV_ENABLE_NONFREE(如果你想用SUFT/SIFT 等算法);点击OPENCV_EXTRA_MODULES_PATH设置路径为opencv_contrib-版本号/modules
在白色框内,拉动进度条可以看到有红色报错,这是由于文件下载失败造成的。如下:
此时,我们打开目标文件夹(Where to build the binaries),找到CMakeDownloadLog.txt文件。
划重点。红框里的内容#cmake_download
“D:/opencv/sources/.cache/ffmpeg/6fff20f5617bd1b7362058790db52caa-opencv_ffmpeg.dll” ,指的是在这个文件夹下缺少6fff20f5617bd1b7362058790db52caa-opencv_ffmpeg.dll这个文件。后面的是网址,“https://raw.githubusercontent.com/opencv/opencv_3rdparty/57064cd66d98994503b34aade3c8d8ff25007b46/ffmpeg/opencv_ffmpeg.dll”,在此网址下载该文件并修改文件名放入到上述文件夹中。
一共是四个文件opencv_ffmpeg.dll,opencv_ffmpeg_64.dll,ffmpeg_version.cmake,ippicv_2020_win_intel64_20191018_general.zip。
b版本不同,文件名也不同。修改文件名后找到相应的文件夹,替换掉原来的0kb的文件。关闭打开的文件夹。
再编译
再次点击Configure。拉动进度条,看有没有红色报错。没有的话恭喜你,直接看下一步。有的话那么你和我是一类人,看我如何解决:
重复操作打开目标文件夹(Where to build the binaries),找到CMakeDownloadLog.txt文件。依旧是一堆信息,此时忽略掉前面已经添加的四个文件的信息。发现缺少以下文件
boostdesc_bgm.i
boostdesc_bgm_bi.i
boostdesc_bgm_hd.i
boostdesc_lbgm.i
boostdesc_binboost_064.i
boostdesc_binboost_128.i
boostdesc_binboost_256.i
vgg_generated_120.i
vgg_generated_64.i
vgg_generated_80.i
vgg_generated_48.i
依旧看#cmake_download 后面的信息,打开相应的网站,下载文件并修改文件名,放到要求的文件夹下。关闭打开的文件夹。再次点击Configure,直至白色框没有红色报错为止,有错则重复上述操作。
5.点击Generate
显示如下图后,关闭cmake。
三、VS编译
打开目标文件夹,点击OpenCV.sln.
右击INSTALL,点击生成。在Debug和Release下均生成一次。
大功告成!
后面的配置opencv的方法请参考其他博客。
四、无法下载怎么办?
打开opencv源文件下sources / 3rdparty / ffmpeg / ffmpeg.cmake(txt形式打开)。第一行找到分支名称。
打开opencv源文件下sources / 3rdparty / ippicv / ippicv.cmake(txt形式打开)。下拉找到和自己电脑配置对应的NAME,如ippicv_2020_win_intel64_20191018_general.zip
接下来,打开链接:https://github.com/opencv/opencv_3rdparty/branches/all
找到对应的分支名称
不用多说,下载!
解压后,该有的都有了。牛掰!
缺少以下文件的,不要慌。这些文件基本通用,不区分版本号,直接百度云!
boostdesc_bgm.i,boostdesc_bgm_bi.i,boostdesc_bgm_hd.i,boostdesc_lbgm.i,boostdesc_binboost_064.i,boostdesc_binboost_128.i
boostdesc_binboost_256.i,vgg_generated_120.i,vgg_generated_64.i
vgg_generated_80.i,vgg_generated_48.i
链接:https://pan.baidu.com/s/1UaHmwjaQLHfKPS6rABV6mA
提取码:jgnp
记得修改好文件名,放到对应的文件夹下喔。