记录一下opencv-contrib的编译使用

一、来由

公司需求进行多图拼接算法,在opencv提供的Stitcher类当中默认的算子是ORB,我想尝试使用SIFT和SURF算子,经过一番查找发现这两个算子需要opencv的超集库支持——“opencv-contrib”。故对编译这个超集库的流程进行记录,以防以后忘记怎么操作,同时我也会把我编译出来的lib、dll以及头文件放在百度网盘,能帮助到大家我也很开心,链接会放到最后。

二、具体操作

1)下载对应的源码即软件

需要下载的有:

需要注意的是opencv和opencv超集扩展包的版本一定要统一!!!!
在Tags这里选择相同的版本即可。

image image

cmake下载安装版本或者直接使用的版本都可以。

下载完opencv源码和超集扩展包得到两个压缩包文件
image

将其解压得到opencv_contrib-4.10.0和opencv-4.10.0文件夹,将opencv_contrib-4.10.0放进opencv-4.10.0文件夹当中,如下:
image

之后建立新的文件夹用于存放cmake编译之后的文件,如下:
image

2)使用cmake对源码进行编译

打开下载好的cmake软件——cmake-gui
image

在对应处分别选中之前解压得到的2个文件夹,然后点击——“Configure”。新出来的界面按照图所示填写即可。我这里使用是visual studio版本为2022,大家需要按照自己安装的版本进行选择。
image

直接点击——“Finish”然后等待完成即可,这里需要耗费一定的时长。编译完就是这样的界面:
image

都是红红一片!但是别慌,我们还需要对具体的项目进行配置,分别是:

  • 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文件夹,如下图:
image
最后再次点击——“Configure”,等待编译完成,直到界面没有红色的选项为止。之后点击——“Generate”生成适用Visual Studio打开的工程。


3)利用Visual Studio编译生成dll文件和lib文件

打开我们之前选中的opencv-4.10.0-windows-world文件夹,找到里面的sln文件:
image
打开之后进行如下操作:
(1)右击ALL_BUILD选择生成
image

(2)右击INSATLL选择——“仅用于项目”——“仅生成INSATLL”
image

之后就完成了,整个生成过程会比较慢,比较吃运行内存。最后可以在前面的opencv_contrib-4.10.0文件夹下面找到所需的lib文件和dll文件
image

include文件也可以在opencv_contrib-4.10.0——install路径下找到:
image


至此大功告成!!!!!
我自己编译的文件链接为:百度网盘链接

posted @ 2024-09-09 17:23  笑眯眯办大事  阅读(378)  评论(0编辑  收藏  举报