openmvs编译与使用

14 篇文章 0 订阅
11 篇文章 4 订阅

写在前面

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
在这里插入图片描述

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,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里面
在这里插入图片描述

eigen

下载,放在openmvs下,并解压
https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.zip
在这里插入图片描述
cmake-gui里面选择eigen的路径,再点击configure
在这里插入图片描述

CGAL

下载可安装的cgal5.0,
https://github.com/CGAL/cgal/releases/download/releases%2FCGAL-5.0/CGAL-5.0-Setup.exe
安装到想要的位置,并添加系统变量CGAL_DIR,目录为安装目录
在这里插入图片描述
同样,cmake-gui退出重新进,点击configure

在这里插入图片描述

VCG

在openmvs目录下git下载源码

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

然后选择VCG的路径,再configure
在这里插入图片描述
看见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
在这里插入图片描述

选择包含cmake文件的…/lib/cmake/glfw3文件夹作为glfw3_DIR
在这里插入图片描述

点击configure,再点击generate
cmake完成
在这里插入图片描述

JPEG,PNG等库…

检查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/下即可
在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

参考

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

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

  • 16
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诺有缸的高飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值