学习到opencv特征检测部分,有的特征检测api不在opencv基础库中,需要额外下载,再对opencv进行编译,下面记录一下opencv的编译过程,使用的opencv版本是4.12
首先上opencv官网上下载对应版本的source压缩包
下载完毕后解压
然后去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进行生成