opencv的编译安装

学习到opencv特征检测部分,有的特征检测api不在opencv基础库中,需要额外下载,再对opencv进行编译,下面记录一下opencv的编译过程,使用的opencv版本是4.12

首先上opencv官网上下载对应版本的source压缩包

https://opencv.org/releases/

 下载完毕后解压

然后去github上下载对应的contrib包

https://github.com/opencv/opencv_contrib/releases/tag/4.1.2

 如果ubuntu系统就下载下面的

cmake的下载

下载的最新的即可

下载完一路next就可以了,要把path添加到系统路径中

编译步骤

1.configure

首先要对opencv的release包进行编译,我新建了一个文件夹叫opencv4.12,然后在里面建立两个文件夹,一个叫build,一个叫source,将解压的源码放在source中

cmake的路径选择如图

 build是专门存放编译后文件的

因为我的电脑里没有python,所以第一次configure的时候会报错,需要将python的部分去掉

 然后再进行configure

发现会报这个错误,提示我找不到ippicv_2019_win_intel64_20180723_general.zip这个文件

即使是我在对应目录下放了这个文件也找不到

这是需要打开bulid文件夹下的cmakedownload文件

 文件中使用ctrl+f搜索这个文件,可以看到他的哈希值,下载地址和存放目录,这是先不管他的存放目录,打开source目录下opencv包中的.cache文件夹,找到其中的ippicv文件夹,将ippicv_2019_win_intel64_20180723_general.zip文件放进去,同时要复制他的哈希值

 修改如下

 这样就cmake会先从本地找这个文件进行生成,不去网上下载了,注意哈希值和文件名之间一定要有“-”,否则是无效命名

再进行configure会提示我缺少

ffmpeg.cmake

opencv_videoio_ffmpeg.dll

opencv_videoio_ffmpeg_64.dll

文件

后两个dll下载下来放到build/3rdparty/ffmpeg文件夹中就可以了,ffmpeg.cmake文件在source的同样文件夹中有,直接复制过来就行了

解决完这三个问题还会报错

提示我缺少ffmpeg_version.cmake文件

 我总cmakedownloadfile中找到了他都信息(哈希值,下载地址和存放路径)

 

 然后将下载地址复制进浏览器,发现是一页文本,因此我在对应目录下新建ffmpeg_version.cmake文件,然后将网页中的内容复制到文件中,进行configure发现仍会报同样的错误,问题并没有解决

所以我尝试另一种方法,在source文件夹的opencv包中的.cache文件夹中放入对应的ffmpeg_version.cmake文件和两个dll文件,然后在文件前面添加上对应的哈希值,参照https://blog.csdn.net/pyt1234567890/article/details/106525475/

但是问题仍没有解决,最终在https://www.cnblogs.com/huluwa508/p/10142718.html中找到原因,要将这个文本网页直接下载下来

 然后他会以txt格式保存ffmpeg_version.cmake.txt,将最后的txt拓展名去掉,在进行configure就不会报错了

最后还会遇到这个错误

 勾掉这个选项即可

 此时configure顺利通过,再点generate即可,这是可以看见opencv的解决方案已经出现了

打开,选择cmakeTarget工程下的ALLBUILD进行生成

原文地址:https://www.cnblogs.com/wangtianning1223/p/13585701.html