您的位置:首页 > 运维架构

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

2018-01-26 16:56 417 查看


一Cmake配置与生成

安装cmake

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

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



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

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



安装完成后,即可打开Cmake



下载opencv_contrib

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

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



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



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

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

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



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


生成成功。


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




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

新建一个项目



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



在源文件下,新建项。



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



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



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



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



完事之后,记得点击应用,确定。
再一次打开属性页:修改附加依赖项

(因为,这玩意要手打输入,我在这里给出。。。你们粘一下)(可以通过命令行程序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



添加环境变量

复制目录:



增加环境变量到Path:



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

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

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: