opencv3.2和opencv contrib3.2的安装和配置

前言
为了安装和配置opencv contrib3.2,将opencv3.1重新配置成opencv3.2了。在安装和配置过程中,出现了很多问题,现在将整个流程和问题梳理一下,记录下来。

操作环境:WIN10 64bit, VS2017Community
需要准备的文件:opencv3.2.0, opencv_contrib3.2.0, cmake3.8.0-rc4

1、在E:新建文件opencv3.2,将opencv3.2.0解压到此文件夹下,并更名为source;
2、将opencv_contrib3.2.0解压到source目录下;
3、将cmake解压到opencv3.2文件夹下;
4、并在opencv3.2文件夹中新建文件mybuild,通过cmake编译的文件都放在此文件夹下。
在这里插入图片描述
编译opencv3.2.0
编译之前,最好保证网络稳定和快速,网络不好,可能会导致某些文件下载不成功。
1、打开cmake
where is the source code:填写source目录
where to build the biliaries:填写新建的mybuild目录
2、填写好后,点击左下角Configure,然后选择VS 15 2017 Win64,然后Finish,开始编译
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3、如果configure结束后,出现错误Error:可能是因为某些文件没有下载成功,可以自己下载下来,放到对应的位置。然后再次configure,直到configure成功为止。

有一种自己下载的方法,按照下面的步骤来,下载相应的文件,并放到相应的目录下:

cmake版本:cmake3.8.0
开发环境:Visual Studio 2017 x64
方法:
1、在opencv安装目录下sources\3rdparty\ffmpeg\ffmpeg.cmake文件中可以看到下载的网址。opencv3.2的ffmpeg.cmake中是https://raw.githubusercontent.com/opencv/opencv_3rdparty/${FFMPEG_BINARIES_COMMIT}/ffmpeg/)ocv_download(PACKAGE opencv_ffmpeg.dll
其中的${FFMPEG_BINARIES_COMMIT}实际上是ffmpeg.cmake前面几行中set(FFMPEG_BINARIES_COMMIT "2a19d0006415955c79431116e4634f04d5eb5a74")
已经赋好了相应的值。所以只需要在浏览器中输入https://raw.githubusercontent.com/opencv/opencv_3rdparty/2a19d0006415955c79431116e4634f04d5eb5a74/ffmpeg/opencv_ffmpeg.dll
并且回车就可以开始文件opencv_ffmpeg.dll的下载了,并且这个文件的harsh码应该是正确的。
下载完之后,将其放到sources\3rdparty\ffmpeg\downloads目录中的2a19d0006415955c79431116e4634f04d5eb5a74文件夹中即可。
实际上这个文件夹的名称就是对应的哈希码。
opencv_ffmpeg_64.dll文件的下载也是一样的。

2、ippicv_windows_20151201.zip文件的下载与1中的类似。它的下载地址在opencv安装目录下sources\3rdparty\ippicv\downloader.cmake文件中。按照1中的方法找到相应的值,输入浏览器即可。下载好之后放到相应的文件夹中。继续configure即可。

3、其他的文件如果下载失败,都可以尝试这种方法去下载。如果找不到对应的下载网址,或者找不到下载网址对应的下载文件,可以直接到GitHub上搜索,进行下载。

编译contrib
configure done后,找到OPENCV_EXTRA_MODULES_PATH
将其设置为opencv_contrib/modules的路径
在这里插入图片描述
如图,找到自己opencv_contrib中modules的路径,注意:如果是复制–粘贴的话,记得将\换成/,不然会出错。然后再【configure】
【Configure】完成后,点击【Generate】
在这里插入图片描述
然后打开opencv3.2/opencv/mybuild目录下的OpenCV.sln文件。
在这里插入图片描述
找到右侧–解决方案资源管理器–CMake Targets–INSTALL,右键–生成。
如果已经生成过,需要重新生成,就右键–重新生成。
在这里插入图片描述
这里需要一点时间,请耐心等待。生成完成后,我这里出现的是115个成功,1个失败。因为生成一次比较麻烦,所以就暂时没有处理那个失败的,一般影响不大。
平台是在Debug x64下进行的。
在这里插入图片描述
结束后,就完成opencv3.2和contrib的编译了。
这时,build中会产生很多文件,可以只留下install,其他都可以删掉。最后,将build文件精简为如下:
在这里插入图片描述
配置环境变量
1、右键电脑【属性】
2、【高级系统设置】
3、【环境变量】
4、【系统变量】【Path】
5、在变量值后加 build->install->bin,如下图
在这里插入图片描述
配置库目录和包含目录
1、先新建一个工程
【文件】->【新建】->【项目】
2、选择空项目,切换至Debug x64。
3、打开属性管理器,如果主界面没有,就点击【视图】->【其他窗口】->【属性管理器】
4、因为我们刚刚生成的是Debug x64,所以这里点开Debug|x64,右键属性,开始配置
5、【通用属性】->【VC++目录】->【包含目录】添加
E:\opencv3.2\build\install\include
E:\opencv3.2\build\install\include\opencv
E:\opencv3.2\build\install\include\opencv2
【库目录】添加
E:\opencv3.2\build\install\lib
在这里插入图片描述
6、【通用属性】->【链接器】->【输入】->【附加依赖项】添加如下库(41个)
可以参考自己build目录下lib文件下的这些文件,我后来又重新配置的文件名称中都加了一个d,见附录。
opencv_aruco320.lib
opencv_bgsegm320.lib
opencv_bioinspired320.lib
opencv_calib3d320.lib
opencv_ccalib320.lib
opencv_core320.lib
opencv_datasets320.lib
opencv_dnn320.lib
opencv_dpm320.lib
opencv_face320.lib
opencv_features2d320.lib
opencv_flann320.lib
opencv_fuzzy320.lib
opencv_highgui320.lib
opencv_imgcodecs320.lib
opencv_imgproc320.lib
opencv_line_descriptor320.lib
opencv_ml320.lib
opencv_objdetect320.lib
opencv_optflow320.lib
opencv_phase_unwrapping320.lib
opencv_photo320.lib
opencv_plot320.lib
opencv_reg320.lib
opencv_rgbd320.lib
opencv_saliency320.lib
opencv_shape320.lib
opencv_stereo320.lib
opencv_stitching320.lib
opencv_structured_light320.lib
opencv_superres320.lib
opencv_surface_matching320.lib
opencv_text320.lib
opencv_tracking320.lib
opencv_video320.lib
opencv_videoio320.lib
opencv_videostab320.lib
opencv_xfeatures2d320.lib
opencv_ximgproc320.lib
opencv_xobjdetect320.lib
然后,应用确定。此时你已配置好了Debug|x64的opencv+contrib3.2。

测试
重启一下,测试一下结果吧!
如果测试时,出现找不到**.dll文件,就到build–bin里面找到对应的dll文件,将其放到你项目目录下,再重新测试!
在这里插入图片描述
测试成功!
在这里插入图片描述

附录:42个lib文件。
opencv_aruco320d.lib
opencv_bgsegm320d.lib
opencv_bioinspired320d.lib
opencv_calib3d320d.lib
opencv_ccalib320d.lib
opencv_core320d.lib
opencv_datasets320d.lib
opencv_dnn320d.lib
opencv_dpm320d.lib
opencv_face320d.lib
opencv_features2d320d.lib
opencv_flann320d.lib
opencv_fuzzy320d.lib
opencv_highgui320d.lib
opencv_imgcodecs320d.lib
opencv_imgproc320d.lib
opencv_line_descriptor320d.lib
opencv_ml320d.lib
opencv_objdetect320d.lib
opencv_optflow320d.lib
opencv_phase_unwrapping320d.lib
opencv_photo320d.lib
opencv_plot320d.lib
opencv_reg320d.lib
opencv_rgbd320d.lib
opencv_saliency320d.lib
opencv_shape320d.lib
opencv_stereo320d.lib
opencv_stitching320d.lib
opencv_structured_light320d.lib
opencv_superres320d.lib
opencv_surface_matching320d.lib
opencv_text320d.lib
opencv_tracking320d.lib
opencv_video320d.lib
opencv_videoio320d.lib
opencv_videostab320d.lib
opencv_xfeatures2d320d.lib
opencv_ximgproc320d.lib
opencv_xobjdetect320d.lib
opencv_xphoto320d.lib

猜你喜欢

转载自blog.csdn.net/weixin_43434305/article/details/86740503