OpenMVS配置(VS2015)

轉載文章,原文章網址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中即可

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章