openMVG+openMVS+VS2015配置全过程(详细参数设置+截图)

写在最前面,本blog只有文字部分,如果读者需要带有截图的版本请到以下地址下载:http://download.csdn.net/detail/mitsubishisony/9614244

配置之前需要特别注意的地方。

1)假如你在机器上装了CUDA,那么OpenCV、OpenMVG和OpenMVS中都不要用,要把WITH_CUDA、BUILD_CUDA_LIB、OpenMVS_USE_CUDA之类的取消,因为即使是最新的CUDA7.5也不支持VS2015,目前支持的VS2015的只有CUDA 8.0且还处于RC版本,因此作者也没有尝试其可用性。如果你使用的是VS2013或更早之前版本的VS,可以考虑安装CUDA,并在cmake中勾选相应的选项。。

2)整个过程中,只有OpenCV,GoogleFlags可以配置成动态库,其余均为静态。即,OpenCV,GoogleFlags中BUILD_SHARED_LIBS需要勾选,其余的出现SHARED_LIB都不能勾选。

3)VS2015有一个已知bug,在Update1中其实也没有解决,假如你在编译OpenMVS的时候出现了internal error C1001,那么恭喜你,你也碰到了。解决方法[3]是:

修改Eigen中generalmatrixmatrix.h第144行(Eigen3.2.7是在这一行,其他版本自行定位)

“--(info[j].users)”改成“info[j].users-=1”。

 

OPENMVS所需要的所有库,以及本文所使用库的版本

OpenCV(2.4以上)3.1

VCG 1.0.0

CGAL (4.2以上)4.8.1

Boost 1.61.0

QT 5.7.0

LibQGLViewer 2.6.3

Ceres

Eigen (3.2以上) 3.2.9

Google Log 0.3.3

Google Flags 2.1.2

CXSParse 3.1.1

Cmake 3.6.0

 

OpenMVG

Git

GCC (4.7以上)5.4.1

OpenMVS

 

文件夹设置:本文在C盘新建一个openMVS的文件夹,其中所需要的各个软件库均以子文件夹的形式在openMVS这个文件夹下进行存储,除此之外在该文件夹下新建2个子文件夹,分别命名为src和build。src文件夹用于存放openMVS的源代码,build用于存放所有相关软件库的生成文件。


一、配置OpenCV

1.网上下载的openCV一般为exe格式,如图所示 ,双击运行,设置安装路径为openMVS/openCV下,然后进行安装。安装后会有2个文件夹,一个sources文件夹,一个build文件夹。本文只用sources文件夹

2.打开cmake软件中的cmake-gui文件,sorce code设置为openCV文件夹里的src子文件夹即openMVS/openCV/sources,build设置为openMVS/build/openCV,详见图,然后点击Configure,并选择相应的编译平台。本文选择Visual Studio 142015 Win64



3.取消BUILD_WITH_STATIC_CRT、BUILD_PERF_TESTS、BUILD_TESTS以及所有包含CUDA项

4.勾选BUILD_SHARED_LIBS,然后再点击Configure,之后点击Generate

5.找到openMVS/build/openCV文件夹中的sln文件,用VS2015打开,分别在Debug和Release模式下进行编译。之后关掉VS2015,在开始菜单中,找到VS2015程序,右键以管理员身份运行,在打开的VS2015的窗口中重新打开刚才的OpenCV.sln文件,在项目列表里找到INSTALL项目,仅对该项目进行编译,并在Debug和Release两种模式下都分别进行编译,如图

二、Eigen文件直接存储在openMVS/Eigen文件夹下,如图所示

三、VCG文件也直接存储在openMVS/VCG文件夹下,如图所示


四、配置Boost

1.Boost文件下载的时候,注意选择相应的编译平台,32/64位和版本,本文用的1.61.0版本,用于VS2015,64位的安装版本,如图所示 。将Boost文件安装在openMVS/Boost文件夹下,安装后,在安装文件夹下,找到bootstrap.bat文件,双击运行 


2.完成后,在openMVG\src文件夹内寻找zlib文件夹,复制这个路径
打开开始菜单中VS2015文件夹中的VS2015 x64本机工具命令提示符工具,并定位到Boost文件夹内,然后输入bjam stage --with-system --with-thread --with-iostreams --with-program_options --with-serialization --with-date_time -sZLIB_SOURCE=/*openMVG中zlib的文件夹路径*/ address-model=64 link=static runtime-link=shared threading=multi debug release
其中/*openMVG中zlib的文件夹路径*/替换为上一步复制的zlib文件夹路径,用于本次的话就是
bjam stage --with-system --with-thread --with-iostreams --with-program_options --with-serialization --with-date_time -sZLIB_SOURCE=C:\openMVS\openMVG\src\third_party\zlib address-model=64 link=static runtime-link=shared threading=multi debug release
然后按回车运行,如图所示。注意SOURCE=后面不要有空格。
 

五、QT安装

安装在c盘默认路径就可以,安装选项默认即可

把QT的安装路径加入到环境变量path里,针对于本文就是C:\Qt\Qt5.7.0,把这个路径加入到环境变量的path里,如图所示

六、配置CGAL

1.首先添加3个环境变量,如图所示

BOOST_LIBRARYDIR= C:\openMVS\Boost\lib64-msvc-14.0

BOOST_INCLUDEDIR= C:\openMVS\Boost

QTDIR= C:\Qt\Qt5.7.0


2.将以下2个路径添加到环境变量的path里:                                                                                                                                                                                          C:\openMVS\Boost\lib64-msvc-14.0

C:\Qt\Qt5.7.0\5.7\msvc2015_64\bin


3.将libQGLViewer文件复制到openMVS/libQGLViewer文件夹内

打开开始菜单中VS2015文件夹中的VS2015 x64本机工具命令提示符工具,并定位到libQGLViewer/QGLViewer子文件夹下

4.输入qmake.exe然后回车

5.输入nmake然后回车

6.将以下路径添加到环境变量的path中:C:\openMVS\libQGLViewer\QGLViewer


7.在环境变量中添加以下变量:QGLVIEWERROOT= C:\openMVS\libQGLViewer


8.安装CGAL文件,如图所示 ,双击进行安装,安装过程中选择64-bits,安装目录到C:\openMVS\CGAL,


用户选择的地方选择All users,并勾选CGAL_DIR。


9.根据提示需要把相应的路径添加到环境变量的path中,如下所示



10.打开cmake-gui,进行如下设置


11.勾选CGAL_Boost_USE_STATIC_LIBS,取消BUILD_SHARED_LIBS

然后点Configure,

12.一般会报错,点击Add Entry添加一个参数 , 如果没有相应的选项,则也通过Add Entry的方式进行添加

Name:CGAL_Boost_USE_STATIC_LIBS,Type:BOOL,Value:打钩

Name:BOOST_INCLUDE_DIR,Type:Path,Value:C:\openMVS\Boost\lib64-msvc-14.0。点击OK后,再点击Configure再点Generate



13.找到openMVS/build/CGAL文件夹中的sln文件,用VS2015打开,分别在Debug和Release模式下进行编译。之后关掉VS2015,在开始菜单中,找到VS2015程序,右键以管理员身份运行,在打开的VS2015的窗口中重新打开刚才的CGAL.sln文件,在项目列表里找到INSTALL项目,仅对该项目进行编译,并在Debug和Release两种模式下都分别进行编译。最后把以下路径添加到环境变量path中:C:\openMVS\build\Cgal\bin


14.最后将openMVS/CGAL/auxiliary文件夹拷至C:/Program Files/CGAL下,把openMVS/CGAL/auxiliary/gmp/include文件夹下的3个.h文件分别拷到C:\ProgramFiles\CGAL\include\CGAL\GMP和C:\ProgramFiles\CGAL\include\CGAL\internal\auxiliary下。


七、配置CXSparse

将文件复制到openMVS/CXSparse文件夹下

在openMVS\CXSparse\Project\CXSparse文件夹中找到CXSparse.sln文件,双击以VS2015打开,注意把目标平台选为x64,然后分别在Debug和Release模式下进行编译。


八、配置Ceres

1.把Ceres,GoogleFlags和Google_Log这3个程序分别复制到openMVS的三个子文件夹里。

2.打开cmake-gui,然后点Configure,勾选BUILD_SHARED_LIBS,再点generate


3.找到openMVS/build/Google_Flags文件夹中的sln文件,用VS2015打开,分别在Debug和Release模式下进行编译。之后关掉VS2015,在开始菜单中,找到VS2015程序,右键以管理员身份运行,在打开的VS2015的窗口中重新打开刚才的gflags.sln文件,在项目列表里找到INSTALL项目,仅对该项目进行编译,并在Debug和Release两种模式下都分别进行编译

4.打开cmake-gui,进行设置然后点Configure,再点generate


5.找到openMVS/build/Google_Log文件夹中的sln文件,用VS2015打开,分别在Debug和Release模式下进行编译。之后关掉VS2015,在开始菜单中,找到VS2015程序,右键以管理员身份运行,在打开的VS2015的窗口中重新打开刚才的google-glog.sln文件,在项目列表里找到INSTALL项目,仅对该项目进行编译,并在Debug和Release两种模式下都分别进行编译

6.打开cmake-gui,进行如下设置


7.一般情况下会报错,修改EIGEN_INCLUDE_DIR为Eigen的根目录,即C:\openMVS\Eigen


勾选CXSPARSE,EXPORT_BUILD_DIR,MINIGLOG,然后再点Configure

8.对以下两项进行如下设置:


再次勾选CXSPARSE,再点Configure,然后点Generate

9.找到openMVS/build/Ceres文件夹中的sln文件,用VS2015打开,分别在Debug和Release模式下进行编译。之后关掉VS2015,在开始菜单中,找到VS2015程序,右键以管理员身份运行,在打开的VS2015的窗口中重新打开刚才的Ceres.sln文件,在项目列表里找到INSTALL项目,仅对该项目进行编译,并在Debug和Release两种模式下都分别进行编译 

九、配置openMVG

1.打开git cmd这个软件,定位到openMVS这个文件夹下 ,然后输入git clone https://github.com/openMVG/openMVG.git,按回车

2.然后进入openMVG文件夹内,输入git submodule init,按回车 
3.然后输入git submodule update,按回车 

4.然后打开cmake-gui程序,进行如下设置


5.查找是否有Ceres_DIR这个参数,如果有进行修改为C:\Program Files\Ceres\CMake,没有可以通过点击Add Entry添加一个参数

CERES_DIR=C:\ProgramFiles\Ceres\CMake,点击OK,再Configure


6.勾选OpenMVG_BUILD_TESTS,OpenMVG_BUILD_EXAMPLES,再次点击Configure,然后点击Generate。

7.找到openMVS/build/openMVG文件夹中的sln文件,用VS2015打开,分别在Debug和Release模式下进行编译。之后关掉VS2015,在开始菜单中,找到VS2015程序,右键以管理员身份运行,在打开的VS2015的窗口中重新打开刚才的OpenMVG.sln文件,在项目列表里找到INSTALL项目,仅对该项目进行编译,并在Debug模式下进行编译,成功后将C:\Program Files\openMVG下的lib文件夹改成libd,再到Release模式下进行编译

 

十、配置openMVS

1.打开cmake-gui,进行设置,然后点Configure,对以下参数进行设置


2.取消BUILD_STATIC_RUNTIME,OpenMVS_USE_CUDA,然后点Configure,修改如下参数:


3.然后点击Configure,修改如下参数:


4.添加以下参数:然后点Configure,再点Generate

5.复制以下2个文件到指定位置

C:\openMVS\CGAL\auxiliary\gmp\include\gmp.h到C:\openMVS\CGAL\include\CGAL

C:\openMVS\CGAL\auxiliary\gmp\include\mpfr.h到C:\openMVS\CGAL\include

6.在APP下的5个工程中“连接器-常规-附加库目录”中添加C:\Program Files\CGAL\lib,debug和release都加

7.ReconstructMesh工程中“链接器-输入-附加依赖项”添加CGAL/auxiliary/gmp/lib/libgmp-10.lib,链接器->常规->附加库目录中添加: C:\openMVS

8.debug下所有工程在“链接器-输入-附加依赖项”中包含的跟OpenMVG相关的库,都需要把路径中的lib改成libd

9.设置完之后,推荐一个接一个编译工程,不要使用ALL_BUILD,可能会出现问题。先lib后app。

10.调整Boost文件:

 在链接器->输入->附加依赖项中涉及到boost的库的文件名前加lib,比如

C:\openMVS\Boost\stage\lib\boost_system-vc140-mt-gd-1_61.lib修改为

C:\openMVS\Boost\stage\lib\libboost_system-vc140-mt-gd-1_61.lib

 11.然后依次对APP下的每个项目进行编译,最终再编译ALL_BUILD。然后在开始菜单中,找到VS2015程序,右键以管理员身份运行,在打开的VS2015的窗口中重新打开刚才的CGAL.sln文件,在项目列表里找到INSTALL项目,仅对该项目进行编译,并在Debug和Release两种模式下都分别进行编译

12.配置opencv路径,在包含目录添加以下路径:C:\openMVS\build\openCV\install\lib

在库目录添加以下路径:C:\openMVS\build\openCV\install\include

在附加依赖项里添加以下文件,根据Debug和Release模式添加不同的文件

Debug:
opencv_calib3d310d.lib
opencv_core310d.lib
opencv_features2d310d.lib
opencv_flann310d.lib
opencv_highgui310d.lib
opencv_imgcodecs310d.lib
opencv_imgproc310d.lib
opencv_ml310d.lib
opencv_objdetect310d.lib
opencv_photo310d.lib
opencv_shape310d.lib
opencv_stitching310d.lib
opencv_superres310d.lib
opencv_ts310d.lib
opencv_video310d.lib
opencv_videoio310d.lib
opencv_videostab310d.lib
Release:
opencv_calib3d310.lib
opencv_core310.lib
opencv_features2d310.lib
opencv_flann310.lib
opencv_highgui310.lib
opencv_imgcodecs310.lib
opencv_imgproc310.lib
opencv_ml310.lib
opencv_objdetect310.lib
opencv_photo310.lib
opencv_shape310.lib
opencv_stitching310.lib
opencv_superres310.lib
opencv_ts310.lib
opencv_video310.lib
opencv_videoio310.lib
opencv_videostab310.lib

13.把以下C:\openMVS\build\openCV\install\bin路径下的所有dll文件复制到C:\Windows\SysWOW64下,或者C:\openMVS\build\openCV\install\bin这个路径添加到环境变量的path中即可

 

 

你可能感兴趣的:(openMVG+openMVS+VS2015配置全过程(详细参数设置+截图))