安装opencv和扩展库opencv-contrib的坑

之前安装完成了OpenCV和contrib库,今天想使用SURF算法的时候出现报错,提示无法识别SURF等符号,无法识别xfeatures2d库,感觉是opencv配置出了问题。
通过查找发现,我使用Cmake编译opencv的时候,没有选择X64,默认的是win32即x86,所以与VS编译器的x64 Debug版本是不匹配的。
因此我选择重新安装opencv 和contrib
但因为各种问题就耗了整整一天。。。。
坑1:
Cmake-GUI需要选择x64
安装opencv和扩展库opencv-contrib的坑_第1张图片
你的VS 使用什么配置进行编译就选择相同的,我这边是x64,因此就选择了x64;

坑2:

首次configure后,有些教程说需要勾选BUILD_OPENCV_WORLD,我已开始也是这样尝试,然后总是不对,因为总是少了一些项目,正常的OpenCv.sln(含contrib)应该在200kb左右,里面包含150左右个项目,但按这种方法生成的项目只有100个左右,同时完成install后没有其他的lib文件,例如xfeaturs2d等等,只有两个lib文件
安装opencv和扩展库opencv-contrib的坑_第2张图片
这种情况下我通过代码实验,发现仍然无法使用SURF、SIFT等额外库的内容,只能使用核心库。
经过尝试,我发现不可以勾选BUILD_OPENCV_WORLD,只要勾选OPENCV_ENABLE_NONFREE和在OPENCV_EXTRA_MODULES_PATH填入contrib的地址即可,然后可以生成完整的lib文件
安装opencv和扩展库opencv-contrib的坑_第3张图片
这种情况下是没有opencv_world349d.lib文件的,在vs项目属性的->链接库->输入上,需要把所有的lib文件都添加上去,就完成所有opencv和contrib的配置啦。

坑3:

这个是以前遇到的,就是在Cmake编译时有些文件是不太好下载的,可以通过CmakeDownLog.txt里面的网址信息进行下载,然后放到对应的文件夹里。分别是这几个
在这里插入图片描述
在**\3rdparty\ffmpeg文件夹中
在这里插入图片描述
\3rdparty\ippicv文件夹中
安装opencv和扩展库opencv-contrib的坑_第4张图片
\downloads\xfeatures2d文件夹中
在这里插入图片描述
\testdata\cv\face**文件夹中

最后来一张SURF特征子镇楼

我这里讲的比较略,主要是一些不太容易知道的坑,具体的安装教程可以参考知乎上的这位博主
https://zhuanlan.zhihu.com/p/90810839

你可能感兴趣的:(opencv,opencv)