openmvs编译与使用

目录

  • 写在前面
  • 获取代码
  • cmake
    • boost
    • opencv
    • eigen
    • CGAL
    • VCG
    • glew和glfw
    • JPEG,PNG等库...
  • 编译
  • 使用
    • 注意事项:
    • 可视化
    • Dense Point-Cloud Reconstruction稠密重建
    • Rough Mesh Reconstruction 生成mesh
    • Mesh Refinement mesh精细化
    • Mesh Texturing 纹理映射
  • 参考

写在前面

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

cmake

先给出官方的build方法https://github.com/cdcseacave/openMVS/blob/master/BUILD.md

打开cmake-gui,选择source code为openMVS代码文件夹,选择where to build为同级目录下的build文件夹(会自动建立),点击configure,开始报错Could NOT find Boost
openmvs编译与使用_第1张图片

boost

openmvs编译与使用_第2张图片
下载boost安装,要求是boost版本高于1.56,这里下载的是1.72版本
https://boostorg.jfrog.io/artifactory/main/release/1.72.0/binaries/
openmvs编译与使用_第3张图片
下载后安装,位置自行选择
安装好之后打开电脑设置–系统–关于–高级系统设置–环境变量
点击新建,变量名为BOOST_ROOT,目录为安装boost的目录
openmvs编译与使用_第4张图片
退出cmake-gui,再重新打开,这样环境变量才会起作用
点击configure,boost没有报错了,但报错没有opencv
openmvs编译与使用_第5张图片

opencv

现在报错没有opencv,opencv的编译方法见
vs2019配置opencv+contrib-440 + PCL1.10.0 + 源码单步调试 https://blog.csdn.net/qq_41102371/article/details/108727224
将编译好的install文件夹找到,里面应该有这些东西
openmvs编译与使用_第6张图片
复制到自己指定的文件夹
然后在cmake-gui里面设置Opencv_DIR为install文件夹
openmvs编译与使用_第7张图片
再点击configure,会看到三个信息
openmvs编译与使用_第8张图片
1、提示没有eigen
2、将opencv的bin路径添加到系统环境变量
3、没有CGAL
先解决opencv,将提示的路径添加到系统变量的Path里面
openmvs编译与使用_第9张图片

eigen

下载,放在openmvs下,并解压
https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip
openmvs编译与使用_第10张图片
cmake-gui里面选择eigen的路径,再点击configure
openmvs编译与使用_第11张图片

CGAL

下载可安装的cgal5.0,
https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-5.0/CGAL-5.0-Setup.exe
安装到想要的位置,并添加系统变量CGAL_DIR,目录为安装目录
openmvs编译与使用_第12张图片
同样,cmake-gui退出重新进,点击configure

openmvs编译与使用_第13张图片

VCG

在openmvs目录下git下载源码

git clone https://github.com/cdcseacave/VCG.git

然后选择VCG的路径,再configure
openmvs编译与使用_第14张图片
看见configuring done了,提示没有glew,仍可以继续,但有的项目不会被生成,比如viewer

glew和glfw

见:
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
openmvs编译与使用_第15张图片

选择包含cmake文件的…/lib/cmake/glfw3文件夹作为glfw3_DIR
openmvs编译与使用_第16张图片

点击configure,再点击generate
cmake完成
openmvs编译与使用_第17张图片

JPEG,PNG等库…

检查JPEG等与图像相关的库,如果像下面这样有就没问题
openmvs编译与使用_第18张图片
如果是NOTFOUND
openmvs编译与使用_第19张图片
那么使用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) 中定义

打开每个项目的属性–链接器–附加依赖项
openmvs编译与使用_第20张图片
openmvs编译与使用_第21张图片
把报错的boost_iostreams和boost_program_options这两个lib删除
App里面的每个项目都这样
再点击生visual studio的生成–成解决方案,生成成功后,在openmvs/build/bin/x64/Release下面,可以看到生成的可执行文件
openmvs编译与使用_第22张图片

使用

先给出官方教程:
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/下即可
openmvs编译与使用_第23张图片

Dense Point-Cloud Reconstruction稠密重建

# reconstruction
..\..\build\bin\x64\Release\DensifyPointCloud.exe .\scene.mvs
# visualize mvs
..\..\build\bin\x64\Release\Viewer.exe .\test\mvs\scene_dense.mvs
# visualize ply

openmvs编译与使用_第24张图片

Rough Mesh Reconstruction 生成mesh

# ReconstructMesh
..\..\build\bin\x64\Release\ReconstructMesh.exe scene_dense.mvs
# visualize
..\..\build\bin\x64\Release\Viewer.exe .\scene_dense_mesh.mvs

openmvs编译与使用_第25张图片

Mesh Refinement mesh精细化

..\..\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

Mesh Texturing 纹理映射

..\..\build\bin\x64\Release\TextureMesh.exe .\scene_dense_mesh_refine.mvs
..\..\build\bin\x64\Release\Viewer.exe .\scene_dense_mesh_refine_texture.mvs

openmvs编译与使用_第26张图片

参考

三维重建-使用开源库openMVG与openMVS https://blog.csdn.net/baidu_40840693/article/details/84777589
colmap+openmvs进行三维重建 https://blog.csdn.net/tangli_sea/article/details/108569035

如有错漏,敬请指正
--------------------------------------------------------------------------------------------诺有缸的高飞鸟202202

你可能感兴趣的:(cmake,3d视觉,三维重建,三维重建,openmvg,openmvs,cmake)