win opencv451 opencv_contral451 camke 编译 _ippitv ffmpeg 报错解决

为何需要自行编译opencv451与opencv_contrib451?
 
因为在3.0之后版本的Opencv对Sift、Sufer等新算法没有提供直接编译好的动态库来加载使用,因此必须自己编译。这是因为Sift、Sufer算法专利现在是属于哥伦比亚大学,因此opencv对这部分内容及“所谓的”不稳定模块全都放到opencv_contrib中。且只在它的Github中能够找到,opencv的官网上是没有的。因此对于想使用Sift、Sufer、双目立体匹配算法、结构光等新的算法及有专利权算法的同学需要自行编译。

一、下载opencv451与opencv_contrib451相对应的版本

1. 下载需要的opencv3.4版本源码 https://github.com/opencv/opencv/releases

2. 下载需要的opencv_contrib451版本源码(和opencv的子版本号一定要对应) https://github.com/opencv/opencv_contrib/releases

 

二、Cmake3.14 编译 OpenCV

1. 安装 Cmake3.20.0

安装包下载地址:https://cmake.org/download/

2. 编译 Opencv451

源码路径“Source code”选择你刚才释放后的的Opencv451目录下的sources文件夹,本文解压到了G:\envirment\opencv-4.5.1路径下,这个需要按照你的路径自行选择。

编译输出路径“build the binaries”,本文新建文件夹“BUILD”路径为G:\envirment\opencv-4.5.1\BUILD,同样这个需要按照你的路径自行选择。

win opencv451 opencv_contral451  camke   编译   _ippitv ffmpeg 报错解决

 

注意 source code 里面指向的不是opencv的解压目录而是里面的source目录。
如图所示, source 文件夹下面有一个CMakeList.txt文件,如果路径错误,就会报CMake Error: The source directory "/opencv" does not appear to contain CMakeLists.txt.错误。

 

编译可能会卡死在 ippitv和ffmpeg的downlaod 中

此时需要 下载资料

ffmpeg
下载地址:https://github.com/opencv/opencv
git地址:https://github.com/opencv/opencv.git
分支:ffmpeg/master_20161202

ippicv
下载地址:https://github.com/opencv/opencv
git地址:https://github.com/opencv/opencv_3rdparty.git
分支:ippicv/master_02151201

ffmpeg
将ffmpeg目录下的ffmpeg_version.cmake、opencv_ffmpeg.dll、opencv_ffmpeg_64.dll三个文件复制到【你的OpenCV路径】\opencv\sources\3rdparty\ffmpeg
根据ffmpeg.cmake里的mad5 在dll前按如图加上前缀,将内容修改为:

win opencv451 opencv_contral451  camke   编译   _ippitv ffmpeg 报错解决

 

 win opencv451 opencv_contral451  camke   编译   _ippitv ffmpeg 报错解决

 

 

ippicv

 

目录“‪\opencv_3rdparty-ippicv-master_20191018\ippicv\ippicv_2020_win_intel64_20191018_general.zip” 解压到\opencv-4.5.1\3rdparty\ippicv
中然后下盖ippicv.cmake 
win opencv451 opencv_contral451  camke   编译   _ippitv ffmpeg 报错解决

 

 如图注释内容

3 opencv_contral451 配置

win opencv451 opencv_contral451  camke   编译   _ippitv ffmpeg 报错解决

 

 

win opencv451 opencv_contral451  camke   编译   _ippitv ffmpeg 报错解决

 

 如图填写 opencv_contral 和 free 勾上

在搜索栏中输入 OPENCV_ENABLE_NONFREE ,在value值中点击选中。如果没有选中,那么类似SIFT这种已经被申请专利的方法就无法使用。
然后点击 configure

 

4 vs 编译

win opencv451 opencv_contral451  camke   编译   _ippitv ffmpeg 报错解决

 

 批生成 选择如图。

 

5 修改环境变量

生成结束之后,需要修改环境变量。

环境变量在“此电脑”->“属性”->“高级系统设置”->“环境变量”,在用户变量里面的 Path 变量后面添加之前CMake设置的build目录\install\x64\vc16\bin,确定,退出。

 

 

 

百度网盘资源:文中提到的文件 

https://pan.baidu.com/s/1_wN6cvnYwoam-FGeMEReCg

提取码:ggs6

上一篇:总结20220119


下一篇:扁平数据结构转换tree