赞
踩
最近想学习图像拼接的知识,要用到SIFT、SURF的内容,但是OpenCV在3.0版本开始,就逐渐将SIFT、SURF等方法放入opencv_contrib中了,如果想使用需要自己编译到opencv中,于是就在自己的Win10电脑上配置了相应的编译环境。先说下整个流程需要用到的工具:1. OpenCV4.1.0源码、2. opencv_contrib-4.1.0源码、3. CMake、4. VS2017,主要就用到这四个,下面依次讲解操作步骤。
因为有的时候去官网下载的话,下载速度有可能很慢,为了方便大家,这里给出两个路径,一个官网的,一个百度云盘的:
github下载路径
百度云盘下载路径,提取码:xkrv
去官网下载的话注意下载的版本:
因为我们的最终目的是使用CMake编译,所以直接下载源码也行,不过为了方便起见,还是直接下载完整的OpenCV吧。
opencv_contrib-4.1.0是OpenCV的扩展包,很多包括SIFT、SURF在内的方法都被封装到这里面去了。这里给出两个路径,一个官网的,一个百度云盘的:
github下载路径
百度云盘下载路径,提取码:xrkh
去官网下载的话注意下载的版本:
为了避免因为版本太旧导致的编译出错问题,建议CMake的版本选择新一点的,我这里用的是CMake 3.17.0版本的。下面是官网的链接路径:
CMake官网。
有的时候官网的下载速度相当慢,简直无语。这里为了方便大家,我把CSDN的下载路径和百度云盘的下载路径也一并送上:
CSDN下载路径
百度云盘下载路径,提取码:ysz3
去官网下载的话需要注意选择的文件名:
Visual Studio的下载就简单多了,去官网下载也很快,因为官网提供的就是一个安装包,文件很小。这里给出三个路径,一个官网的,一个百度云盘的,还有一个CSDN的:
微软官网。
百度云盘下载路径,提取码:2rlt
CSDN下载路径
CSDN下载路径里面除了VS2017专业版以外,还有配套的ImageWatch和visual_assist_x,三个都在一起,直接一步到位。
去官网下载的话需要注意,如果不想下载官网最新的VS,需要选择旧版本下载:
上面的分享中是VS2017专业版的,它的产品序列号网上有很多,这里我就列出两个,一个企业版的,一个专业版的,如果失效了再去网上找就是:
企业版:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF
专业版:KBJFW-NXHK6-W4WJM-CRMQB-G3CDH
新版本的CMake和之前的肯定会有点区别,我下面的说明都是只针对CMake 3.17.0版本下的。
第一步:选择你的OpenCV源码路径,一般都是opencv/sources路径下;
第二步:选择保存CMake编译好的代码的路径,自己新建一个合适的文件夹即可;
第三部:点击Configure进入下一步配置。
第一步:选择适合你的VS的版本,我这里是VS2017版本的;
第二步:**容易被忽视的一步,要选择你需要的操作平台,如果不选,默认是Win32的,这里我们当然是需要x64的。**选好以后点击Finish。
这里第一次点击Configure后会出现红色界面,注意看下文本框中是否有报错,没有报错的话就再点击一次Configure。正常情况下应该是所有红色部分全部变为白色了,如下图:
到这里我们只加入了 opencv 的源码,还没有添加 opencv_contrib的,下面开始添加:
第一步:为了方便,让之后生成的opencv的lib和dll包含在一个文件opencv_world.lib和opencv_world.dll内,我们需要找到 BUILD 将其下的 BUILD_opencv_world 勾上。
第二步:在OPENCV下勾选 OPENCV_ENABLE_NONFREE项,否则在运行SIFT、SURF等函数时会报错。 Error: The function/feature is not implemented (This algorithm is patented and is excluded in this configuration; Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library) ;
第三步:在OPENCV 中找到 OPENCV_EXTRA_MODULES_PATH 项,添加opencv_contrib的路径,他的路径是我们解压的opencv_contrib 文件夹下的 module 文件夹的路径。需要注意的是:一定要在CMake中通过查找的方式找到路径,不要复制粘贴,否则容易编译报错。
OK,现在再次点击 Configure,会出现下图所示:
有部分变红了,不用管,再次点击Configure,如果全白,没有报错就再点击Generate。正常会如下图所示:
OK,现在我们已经接近成功了。下一步,找到编译好的文件夹,我这里是opencv-test,在该文件夹下找到OpenCV.sln解决方案,如下图所示,点击它使用VS2017打开:
在打开的工程中我们可以看到,红框中默认就是Debug、x64,如果在之前的CMake步骤中没有选择x64,这里就会出现Debug、Win32。我之前有一次就是这样,最后编译好库以后发现没法用,因为是32位的库。
然后进行第一步:右键单击解决方案’OpenCV’,在弹出的菜单中选择“生成解决方案”。之后就静待佳音了,电脑性能好的话20-30分钟应该就好了。
下面进行第二步:右键单击‘INSTALL’,在菜单中依次选择“仅用于项目”->“仅生成INSTALL”。然后就等待它生成就行了,这步会很快,1-2分钟就差不多了。
当上一步生成好 INSTALL 以后,opencv 的库就已经生成在我们的 opencv-test 文件夹下的 install 文件夹中了,里面包括了 bin、etc、include、x64等文件夹和一些文件,这就和官网提供的opencv包里build文件夹下是一样的结构了。只是我们这里只生成好了Debug模式的库,如果需要Release模式的库的话,只需要重复上面两幅图的步骤将Debug切换成Release,再重新生成解决方案即可。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。