记录一下opencv-contrib的编译使用
一、来由
公司需求进行多图拼接算法,在opencv提供的Stitcher类当中默认的算子是ORB,我想尝试使用SIFT和SURF算子,经过一番查找发现这两个算子需要opencv的超集库支持——“opencv-contrib”。故对编译这个超集库的流程进行记录,以防以后忘记怎么操作,同时我也会把我编译出来的lib、dll以及头文件放在百度网盘,能帮助到大家我也很开心,链接会放到最后。
二、具体操作
1)下载对应的源码即软件
需要下载的有:
需要注意的是opencv和opencv超集扩展包的版本一定要统一!!!!
在Tags这里选择相同的版本即可。
cmake下载安装版本或者直接使用的版本都可以。
下载完opencv源码和超集扩展包得到两个压缩包文件
将其解压得到opencv_contrib-4.10.0和opencv-4.10.0文件夹,将opencv_contrib-4.10.0放进opencv-4.10.0文件夹当中,如下:
之后建立新的文件夹用于存放cmake编译之后的文件,如下:
2)使用cmake对源码进行编译
打开下载好的cmake软件——cmake-gui
在对应处分别选中之前解压得到的2个文件夹,然后点击——“Configure”。新出来的界面按照图所示填写即可。我这里使用是visual studio版本为2022,大家需要按照自己安装的版本进行选择。
直接点击——“Finish”然后等待完成即可,这里需要耗费一定的时长。编译完就是这样的界面:
都是红红一片!但是别慌,我们还需要对具体的项目进行配置,分别是:
- OPENCV_ENABLE_NONFREE——使能带版权的功能包
- BUILD_opencv_world——将功能包编译成一个lib和dll文件
- OPENCV_EXTRA_MODULES_PATH——超集包位置
在Search框中进行检索
OPENCV_ENABLE_NONFREE和BUILD_opencv_world直接打勾即可,OPENCV_EXTRA_MODULES_PATH则选中前面的opencv_contrib-4.10.0文件夹下面的model文件夹,如下图:
最后再次点击——“Configure”,等待编译完成,直到界面没有红色的选项为止。之后点击——“Generate”生成适用Visual Studio打开的工程。
3)利用Visual Studio编译生成dll文件和lib文件
打开我们之前选中的opencv-4.10.0-windows-world文件夹,找到里面的sln文件:
打开之后进行如下操作:
(1)右击ALL_BUILD选择生成
(2)右击INSATLL选择——“仅用于项目”——“仅生成INSATLL”
之后就完成了,整个生成过程会比较慢,比较吃运行内存。最后可以在前面的opencv_contrib-4.10.0文件夹下面找到所需的lib文件和dll文件
include文件也可以在opencv_contrib-4.10.0——install路径下找到:
至此大功告成!!!!!
我自己编译的文件链接为:百度网盘链接