VS2017配置OpenCV3.2+contrib3.2

VS2017配置OpenCV3.2+contrib3.2

前言

  • opecv3.2+opencv_contrib3.2模块都编译配置了

  • 在配置contrib之前,尝试直接配置OpeCV3.2-vc14,发现可以正常使用,也就是说官方包虽然只有vc14,但vs2017(vc15)也支持的很好。

  • 操作环境:WIN10 64bit ,VS2017社区版CMake-3.8.0-rc3 
    准备文件:opencv3.2.zipopencv_contrib-3.2.0.zip 
    【ippicv_windows_20151201.zip protobuf-cpp-3.1.0.tar.gz】 
    上述两个用于编译的文件常常由于下载缓慢或者无法下载导致编译失败。大家可以直接在CSDN上搜索到,如果有需要,后期我会上传补充。 
     
    goturn是我需要的一个训练模型【无视】 
    doc是官方离线文档【可选】 
    extra是跑例程需要的dataset【可选】 
    其他几个就是上文提到的

  • 需要注意的是:Cmake最好到官网下载较新的版本,否则无法检测到VS2017.这里使用CMake3.8版本,其次contrib模块也要相对应3.2版本,否则很难编译通过,接下来我们就可以开始了

  • 本文中的路径都是相对于我的,你的路径根据实际会有所不同

编译OpenCV3.2

  1. 解压OpenCV3.2。在解压后的OpenCV3.2的目录里新建文件夹并命名为myBuild(主要是和原Build文件夹区分)
  2. 解压opencv_contrib-3.2.0(建议移动到OpenCV3.2目录下,方便后期查找和操作)
  3. 解压并打开Cmake。如果是免安装程序,就到cmake的解压目录的 
    bin里双击cmake-gui.exe 如下图 

4.在cmake的地址栏填入地址 
where is the source code 填你的OpenCV3.2的source目录 
where to build the biliaries 填刚建立的myBuild


如图是我的路径。你要看你的具体目录来填写

然后点击【Configure】会弹出选择VS的界面,我选的是vs2017 win64 
再次点击【Configure】 
该过程是需要联网的,甚至需要帆樯。否则可能出现ERROR:not find 等,一般就是上述提到的两个文件。 
将ippicv_windows_20151201.zip放到myBuild/3rdparty/ippicv里,再次【Configure】

编译contrib模块 
configure done后,找到OPENCV_EXTRA_MODULES_PATH 
将其设置为opencv_contrib/modules的路径


特别注意生成静态库是一定要去除

下面三个模块:

BUILD_EXAMPLES

BUILD_TEST

BUILD_PERF_TESTS

否则编译之后大小会很大50G左右

如图我的路径。然后【configure】 
由于CMakeLists.txt中下载dnn模块的链接失效,所以需要自己另行下载并移到opencv_contrib-3.2.0/modules/dnn/.download/bd…./v3.1.0 
如图路径


然后【Configure】完成后就可以【Generate】了


然后再点击【Open Project】这会自动打开vs2017 
也可以到myBuild里找到OpenCV.sln打开。 
打开vs2017后一般可以直接看到【解决方案资源管理器】一栏,没有就点击【视图v】-【解决方案资源管理器p】,可以看到OpenCV的解决方案


选择你需要的平台 
这里写图片描述 
右键解决方案重新生成 
 
待结束后,点开CmakeTargets–>INSTALL,右键->【仅用于项目】->【仅生成INSTALL】 
等待完成。我这里是成功113,跳过7个。

myBuild最后大概有6.5G【有很多垃圾文件】 
生成后把opencv和contrib综合了起来。所以配置的时候只需要用myBuild/install了。

这是myBuild里的文件


由于垃圾文件很多myBuild里可以只留下install,其他都可以删掉

 
同时建议把opencv,contrib里面的源码留下。我整理如下 
 
分别对应myBuild,opencv源码+sample,contrib源码+samples 
整个OpenCV3.2缩小到600+Mb

方便以后查看

接下来就和配置普通版本一样了。

配置环境变量

  1. 右键电脑【属性】
  2. 【高级系统设置】
  3. 【环境变量】
  4. 【系统变量】【Path】
  5. 在变量值后加 
    ;D:\Win10soft\OpenCV3.2\myBuild\install\x64\vc15\bin 
    注意这要改成你的路径,多个变量值以英文分号分开

配置库目录和包含目录 
1. 先新建一个工程 
【文件】->【新建】->【项目】 

确定,在下一步选择空项目。 
将上方切换至Debug/Release x64,这个根据需要视情况而定。

打开属性管理器,如果主界面没有,就点击【视图】->【属性管理器】 
 
因为我们刚刚生成的是Release x64,所以这里我们点开Release|x64

右键再点属性开始配置

1.【通用属性】->【VC++目录】->【包含目录】 
添加 
D:\Win10soft\OpenCV3.2\myBuild\install\include 
D:\Win10soft\OpenCV3.2\myBuild\install\include\opencv 
D:\Win10soft\OpenCV3.2\myBuild\install\include\opencv2 
include 
【确定】

2.【库目录】 
D:\Win10soft\OpenCV3.2\myBuild\install\x64\vc15\lib 
【确定】

点击【应用】

3.【通用属性】->【链接器】->【输入】->【附加依赖项】 

添加如下库(41个 Debug

添加如下库(41个 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_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



添加如下库 (41个Release

 添加如下库(41个Release

 添加如下库(41个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_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 

确定确定应用。 
此时你已配置好了Release|x64的OpenCV+contrib3.2 
重启一下,试试读取图片吧

测试代码

#include<iostream>

#include<opencv2/opencv.hpp>

int main(int argc,char** argv){

cout<< cv_version<<endl;

Mat src=imread("you own path of pictures");

imshoe("hello world!",src);

waitKey(0);

return 0;

}

在移动工程时偶然发现,该工程居然有101Mb,而这只是读取一张图片而已。查看文件夹,合计也才几mb文件,然后打开了文件管理器的查看,显示隐藏。 
发现一个隐藏文件夹 
 
查看属性果然很大,我将隐藏文件夹内的内容删除,并打开属性显示。然后打开工程。发现在加载工程过程中,该隐藏文件夹,不断增长。然后跑了surf匹配,结果工程变成了180多Mb. 
有些难以置信。以前在VS2013上8个cpp,代码近万行的工程才80多mb。目前没有找到原因,猜测可能是因为:VS2017为加快处理速度的新特性,或者是我在安装VS时,选择安装项不合理导致。 



针对上面只生成三个文件,且没有x64的,默认为生成的bin文件为64位,最新的vs2017生成库更简洁,并不影响使用。其余情况也可以按照这个处理。


前言

  • opecv3.2+opencv_contrib3.2模块都编译配置了

  • 在配置contrib之前,尝试直接配置OpeCV3.2-vc14,发现可以正常使用,也就是说官方包虽然只有vc14,但vs2017(vc15)也支持的很好。

  • 操作环境:WIN10 64bit ,VS2017社区版CMake-3.8.0-rc3 
    准备文件:opencv3.2.zipopencv_contrib-3.2.0.zip 
    【ippicv_windows_20151201.zip protobuf-cpp-3.1.0.tar.gz】 
    上述两个用于编译的文件常常由于下载缓慢或者无法下载导致编译失败。大家可以直接在CSDN上搜索到,如果有需要,后期我会上传补充。 
     
    goturn是我需要的一个训练模型【无视】 
    doc是官方离线文档【可选】 
    extra是跑例程需要的dataset【可选】 
    其他几个就是上文提到的

  • 需要注意的是:Cmake最好到官网下载较新的版本,否则无法检测到VS2017.这里使用CMake3.8版本,其次contrib模块也要相对应3.2版本,否则很难编译通过,接下来我们就可以开始了

  • 本文中的路径都是相对于我的,你的路径根据实际会有所不同

编译OpenCV3.2

  1. 解压OpenCV3.2。在解压后的OpenCV3.2的目录里新建文件夹并命名为myBuild(主要是和原Build文件夹区分)
  2. 解压opencv_contrib-3.2.0(建议移动到OpenCV3.2目录下,方便后期查找和操作)
  3. 解压并打开Cmake。如果是免安装程序,就到cmake的解压目录的 
    bin里双击cmake-gui.exe 如下图 

4.在cmake的地址栏填入地址 
where is the source code 填你的OpenCV3.2的source目录 
where to build the biliaries 填刚建立的myBuild


如图是我的路径。你要看你的具体目录来填写

然后点击【Configure】会弹出选择VS的界面,我选的是vs2017 win64 
再次点击【Configure】 
该过程是需要联网的,甚至需要帆樯。否则可能出现ERROR:not find 等,一般就是上述提到的两个文件。 
将ippicv_windows_20151201.zip放到myBuild/3rdparty/ippicv里,再次【Configure】

编译contrib模块 
configure done后,找到OPENCV_EXTRA_MODULES_PATH 
将其设置为opencv_contrib/modules的路径


特别注意生成静态库是一定要去除

下面三个模块:

BUILD_EXAMPLES

BUILD_TEST

BUILD_PERF_TESTS

否则编译之后大小会很大50G左右

如图我的路径。然后【configure】 
由于CMakeLists.txt中下载dnn模块的链接失效,所以需要自己另行下载并移到opencv_contrib-3.2.0/modules/dnn/.download/bd…./v3.1.0 
如图路径


然后【Configure】完成后就可以【Generate】了


然后再点击【Open Project】这会自动打开vs2017 
也可以到myBuild里找到OpenCV.sln打开。 
打开vs2017后一般可以直接看到【解决方案资源管理器】一栏,没有就点击【视图v】-【解决方案资源管理器p】,可以看到OpenCV的解决方案


选择你需要的平台 
这里写图片描述 
右键解决方案重新生成 
 
待结束后,点开CmakeTargets–>INSTALL,右键->【仅用于项目】->【仅生成INSTALL】 
等待完成。我这里是成功113,跳过7个。

myBuild最后大概有6.5G【有很多垃圾文件】 
生成后把opencv和contrib综合了起来。所以配置的时候只需要用myBuild/install了。

这是myBuild里的文件


由于垃圾文件很多myBuild里可以只留下install,其他都可以删掉

 
同时建议把opencv,contrib里面的源码留下。我整理如下 
 
分别对应myBuild,opencv源码+sample,contrib源码+samples 
整个OpenCV3.2缩小到600+Mb

方便以后查看

接下来就和配置普通版本一样了。

配置环境变量

  1. 右键电脑【属性】
  2. 【高级系统设置】
  3. 【环境变量】
  4. 【系统变量】【Path】
  5. 在变量值后加 
    ;D:\Win10soft\OpenCV3.2\myBuild\install\x64\vc15\bin 
    注意这要改成你的路径,多个变量值以英文分号分开

配置库目录和包含目录 
1. 先新建一个工程 
【文件】->【新建】->【项目】 

确定,在下一步选择空项目。 
将上方切换至Debug/Release x64,这个根据需要视情况而定。

打开属性管理器,如果主界面没有,就点击【视图】->【属性管理器】 
 
因为我们刚刚生成的是Release x64,所以这里我们点开Release|x64

右键再点属性开始配置

1.【通用属性】->【VC++目录】->【包含目录】 
添加 
D:\Win10soft\OpenCV3.2\myBuild\install\include 
D:\Win10soft\OpenCV3.2\myBuild\install\include\opencv 
D:\Win10soft\OpenCV3.2\myBuild\install\include\opencv2 
include 
【确定】

2.【库目录】 
D:\Win10soft\OpenCV3.2\myBuild\install\x64\vc15\lib 
【确定】

点击【应用】

3.【通用属性】->【链接器】->【输入】->【附加依赖项】 

添加如下库(41个 Debug

添加如下库(41个 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_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



添加如下库 (41个Release

 添加如下库(41个Release

 添加如下库(41个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_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 

确定确定应用。 
此时你已配置好了Release|x64的OpenCV+contrib3.2 
重启一下,试试读取图片吧

测试代码

#include<iostream>

#include<opencv2/opencv.hpp>

int main(int argc,char** argv){

cout<< cv_version<<endl;

Mat src=imread("you own path of pictures");

imshoe("hello world!",src);

waitKey(0);

return 0;

}

在移动工程时偶然发现,该工程居然有101Mb,而这只是读取一张图片而已。查看文件夹,合计也才几mb文件,然后打开了文件管理器的查看,显示隐藏。 
发现一个隐藏文件夹 
 
查看属性果然很大,我将隐藏文件夹内的内容删除,并打开属性显示。然后打开工程。发现在加载工程过程中,该隐藏文件夹,不断增长。然后跑了surf匹配,结果工程变成了180多Mb. 
有些难以置信。以前在VS2013上8个cpp,代码近万行的工程才80多mb。目前没有找到原因,猜测可能是因为:VS2017为加快处理速度的新特性,或者是我在安装VS时,选择安装项不合理导致。 



针对上面只生成三个文件,且没有x64的,默认为生成的bin文件为64位,最新的vs2017生成库更简洁,并不影响使用。其余情况也可以按照这个处理。


猜你喜欢

转载自blog.csdn.net/darlingqiang/article/details/79616250
今日推荐