opencv3.2.0+opencv_contrib扩展模块+VS2015+CMake 编译opencv(完美解决编译错误)

Cmake配置与生成

  1. 安装cmake

下载地址:https://cmake.org/download/

获取最新版本cmake-3.8.1-win64-x64.msi可执行程序,不是压缩包


下载完毕直接运行安装,只有一个步骤要注意,

选择‘addCmake to the system PATH for the current user!!!


安装完成后,即可打开Cmake


  1. 下载opencv_contrib

OpenCVcontrib下载地址打开页面下载 ZIP。(挑选与opencv版本相匹配的contrib版本,我这里是3.2

https://github.com/opencv/opencv_contrib/releases


扫描二维码关注公众号,回复: 3806832 查看本文章

解压缩到自定义目录(记住了位置,后面要用)(推荐放在opencv源包source下的modules目录下,不然有可能出错。。


  1. Cmake的配置与生成

1填入‘ opencv源码的路径’以及‘准备输出的目录(自定义)’

如果还没下载opencv可以到官网下载,在opencv官网下载压缩包(格式.exe),解压缩到自定义目录。

之后,点击左下方的‘configure’


2弹出窗口,选择vs对应的版本。我这里是VS2017Win64(64位的计算机选择Win64,否则默认为32位,根据自己的安装选择)


默认选项‘use default native compliers’,点击‘finish’。


3)此时,重新编译opencv开始执行,这需要花费一点时间。

完成会出现窗口如下:命令行显示‘Configuring done’表示成功!

滑动中间窗格找到‘OPENCV_EXTRA_MODULES_PATH’添加‘刚刚下载的 opencvcontrib-master包下的modules文件夹’路径。


然后,在点左下方的’Generate‘按钮。‘generating done’表示生成成功!!!

下边是重点:!!!!!!

⚠️补充,在生成过程中可能出现找不到或是下载不了'protobuf-cpp-3.1.0.tar.gz

可能有以下几个原因:

原因1:我们可以去github或者点击这里下载对应的文件然后替换掉原来的位置,比如你缺少

opencv3.2 protobuf-cpp-3.1.0.tar.gz ,下载后把这个文件放到 D:\opencv3_2\opencv\opencv_contrib-3.2.0\modules\dnn\.download\bd5e3eed635a8d32e2b99658633815ef\v3.1.0 替换掉。一般都是这个原因。 

另外一个重要的错误原因2:是cmake刚开始编译的语言要选择正确(上面已说明),比如我目前是VS2015  Win64的,刚开始编译的时候要注意此点。

原因3:opencv版本一定要与opencv_contrib 版本对应,否则会出现上面的错。(我的是opencv3.2,就必须下载opencv_contrib 3.2.0版本的),在这里可以选择你对应的版本地址:https://github.com/opencv/opencv_contrib/releases,我选择的zip压缩格式的,另外一个tag的目前还不知道~

【链接】protobuf-cpp-3.1.0.tar.gz

https://pan.baidu.com/s/1nxqW4HV

4)打开输出目录,找到OpenCV.sln文件,即表示cmake已完成配置与生成。


 VS编译生成installer

  1. 打开输出目录,找到OpenCV.sln文件,双击打开。

第一次打开,需要重新生成解决方案如图所示。(需要还蛮久的时间)


  1. 全部生成成功后,按下图操作生成install
  1. 生成成功。

打开同名路径,找到install包,包下是与opencv源包build相似的文件构架。


重新配置OpenCV,include\libraries\附加依赖项。

  1. 新建一个项目


Ok--下一步。。。。唯一要注意的地方就是:‘空项目’。


在源文件下,新建项。


  1. 打开属性管理器:修改包含目录,库目录。


在侧边栏找到Debug|x64包下的Microsoft.Cpp.x64.user右键‘属性’


删掉原有包含目录,改为如图所示的三个新目录。


删掉原有库目录,改为如图所示目录。


完事之后,记得点击应用,确定。

  1. 再一次打开属性页:修改附加依赖项

(因为,这玩意要手打输入,我在这里给出。。。你们粘一下)(可以通过命令行程序cmd的命令得到lib文件下所有的文件名,详细做法可以见我的另一篇博文)

添加内容:(其实就是之前install/…/lib下的内容

debug模式下:

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_hdf320d.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




Release模式下:

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_hdf320.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
opencv_xphoto320.lib


  1. 添加环境变量

复制目录:


增加环境变量到Path


整个开发环境部署完工!!!(我测试的是需要重启电脑才能生效)

但是要注意,每次执行项目时要重新设置Debug为‘x64’,否则会报错。

猜你喜欢

转载自blog.csdn.net/flyyufenfei/article/details/79174252