1、内容
openmvs是一个用于稠密重建点云的开源库,在sfm稀疏重建之后使用,本文记录其编译以及使用方法
2、平台
win10, visual studio2019
3、转载请注明出处:
https://blog.csdn.net/qq_41102371/article/details/123054992
4、每个人因为电脑环境和操作步骤的不同,会遇到不同的问题,所以您的问题可能本人并没有遇到过,因此私信问问题之前,检查是否前面的每一步结果都和博客截图上面的一样,并且描述清楚是在哪个开源库和哪个步骤报的错,这样才能解决问题。
建议使用 v1.1.1的代码,最新版在cmake的时候会报错:
No CMAKE_CUDA_COMPILER could be found.
1、使用git
mkdir openmvs
cd openmvs
git clone https://github.com/cdcseacave/openMVS.git
cd openMVS
git checkout v1.1.1
cd ..
2、直接下载v1.1.1到openmvs文件夹下
https://github.com/cdcseacave/openMVS/releases/tag/v1.1.1
先给出官方的build方法https://github.com/cdcseacave/openMVS/blob/master/BUILD.md
打开cmake-gui,选择source code为openMVS代码文件夹,选择where to build为同级目录下的build文件夹(会自动建立),点击configure,开始报错Could NOT find Boost
下载boost安装,要求是boost版本高于1.56,这里下载的是1.72版本
https://boostorg.jfrog.io/artifactory/main/release/1.72.0/binaries/
下载后安装,位置自行选择
安装好之后打开电脑设置–系统–关于–高级系统设置–环境变量
点击新建,变量名为BOOST_ROOT,目录为安装boost的目录
退出cmake-gui,再重新打开,这样环境变量才会起作用
点击configure,boost没有报错了,但报错没有opencv
现在报错没有opencv,opencv的编译方法见
vs2019配置opencv+contrib-440 + PCL1.10.0 + 源码单步调试 https://blog.csdn.net/qq_41102371/article/details/108727224
将编译好的install文件夹找到,里面应该有这些东西
复制到自己指定的文件夹
然后在cmake-gui里面设置Opencv_DIR为install文件夹
再点击configure,会看到三个信息
1、提示没有eigen
2、将opencv的bin路径添加到系统环境变量
3、没有CGAL
先解决opencv,将提示的路径添加到系统变量的Path里面
下载,放在openmvs下,并解压
https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip
cmake-gui里面选择eigen的路径,再点击configure
下载可安装的cgal5.0,
https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-5.0/CGAL-5.0-Setup.exe
安装到想要的位置,并添加系统变量CGAL_DIR,目录为安装目录
同样,cmake-gui退出重新进,点击configure
在openmvs目录下git下载源码
git clone https://github.com/cdcseacave/VCG.git
然后选择VCG的路径,再configure
看见configuring done了,提示没有glew,仍可以继续,但有的项目不会被生成,比如viewer
见:
glfw编译 https://blog.csdn.net/qq_41102371/article/details/123085448
glew编译 https://blog.csdn.net/qq_41102371/article/details/123077250
编译完成后在cmake-gui选择包含cmake文件的…/lib/cmake/glew文件夹作为GLEW_DIR
选择包含cmake文件的…/lib/cmake/glfw3文件夹作为glfw3_DIR
点击configure,再点击generate
cmake完成
检查JPEG等与图像相关的库,如果像下面这样有就没问题
如果是NOTFOUND
那么使用conda(没有的自行百度配置conda)就行安装就行
命令行输入:
conda install jpeg -y
conda install libpng -y
conda install libtiff -y
再重新进行上述步骤
否则可能会出现error: unknown image format '…/undistortedImages/100_7100.JPG’的错误
用visual studio2019打开openmvs.sln,选择Release(Debug也是需要下列步骤)
点击生成解决方案,结束后看到大量的LNK2005报错,是关于boost库的,参见
openmvs编译遇到的问题记录 https://blog.csdn.net/qq_41102371/article/details/117225070
错误 LNK2005 “public: static void __cdecl boost::iostreams::zlib_error::check(int)” (?check@zlib_error@iostreams@boost@@SAXH@Z) 已经在 boost_iostreams-vc142-mt-gd-x64-1_72.lib(boost_iostreams-vc142-mt-gd-x64-1_72.dll) 中定义
打开每个项目的属性–链接器–附加依赖项
把报错的boost_iostreams和boost_program_options这两个lib删除
App里面的每个项目都这样
再点击生visual studio的生成–成解决方案,生成成功后,在openmvs/build/bin/x64/Release下面,可以看到生成的可执行文件
先给出官方教程:
https://github.com/cdcseacave/openMVS/wiki/Usage
将openmvg的test文件夹复制到openmvs目录下
openmvg的使用见
openmvg编译与使用 https://blog.csdn.net/qq_41102371/article/details/123031709
1、dll
后续命令会提示缺少dll,将相应的dll复制到同级目录下就好,比如使用viewer.exe时提示glew32.dll,glew32.dll在install_glew/bin里面有,或者使用everything搜索glew32.dll等。
2、命令行
后续命令用powershell(蓝色背景那个)可能没反应,换成cmd窗口(黑色背景)就行
使用viewer查看openmvg生成的稀疏重建点云
cd test\mvs
..\..\build\bin\x64\Release\Viewer.exe .\scene.mvs
提示错误
error: failed reloading image ‘D:/carlos/code/openmvs/test/mvs/test/undistortedImages/100_7100.JPG’
在mvs下新建test,再将undistortedImages复制到mvs/test/下即可
# reconstruction
..\..\build\bin\x64\Release\DensifyPointCloud.exe .\scene.mvs
# visualize mvs
..\..\build\bin\x64\Release\Viewer.exe .\test\mvs\scene_dense.mvs
# visualize ply
# ReconstructMesh
..\..\build\bin\x64\Release\ReconstructMesh.exe scene_dense.mvs
# visualize
..\..\build\bin\x64\Release\Viewer.exe .\scene_dense_mesh.mvs
..\..\build\bin\x64\Release\RefineMesh.exe .\scene_dense_mesh.mvs --max-face-area 16
..\..\build\bin\x64\Release\Viewer.exe .\scene_dense_mesh_refine.mvs
..\..\build\bin\x64\Release\TextureMesh.exe .\scene_dense_mesh_refine.mvs
..\..\build\bin\x64\Release\Viewer.exe .\scene_dense_mesh_refine_texture.mvs
三维重建-使用开源库openMVG与openMVS https://blog.csdn.net/baidu_40840693/article/details/84777589
colmap+openmvs进行三维重建 https://blog.csdn.net/tangli_sea/article/details/108569035
如有错漏,敬请指正
--------------------------------------------------------------------------------------------诺有缸的高飞鸟202202