写在前面
1、openmvg是一个用于实现structure from motion的开源库,实现了完整的sfm pipeline,并有说明文档: https://openmvg.readthedocs.io/en/latest/ 2、本文内容 openmvg v2.0的编译 openmvg v2.0的使用 3、平台 windows10, visual studio 2019 4、转载请注明出处: https://blog.csdn.net/qq_41102371/article/details/123346436
获取代码
以下两种方式都可,git不下来就去网盘
github
mkdir openmvg
cd openmvg
git clone --recursive https://github.com/openMVG/openMVG.git
cd openMVG
git checkout v2.0
cd ..
网盘
新建openmvg文件夹 下载源码:share_noel/sfm/openmvg/openMVG.zip https://pan.baidu.com/s/1IsN2Ze2FNts-3v4ZH1m-9A 提取码: mack 下载之后放在openmvg目录并解压,现在的目录结构是…/openmvg/openMVG,openMVG里面是openmvg源码
编译
win+r,输入cmd进入命令行窗口 比如这里是在d:\carlos\code\openmvg因此执行以下命令(不要整个粘贴,一句一句执行)
d:
cd carlos
cd code
cd openmvg
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="./openmvg_v20r" -S .\openMVG\src\ -B .\build_r
cmake --build .\build_r --config Release --target install
编译过程中,如果命令行长期没动,点一下命令行窗口里面的任意位置,敲一下回车 完成之后,会生将编译好的文件自动安装到…/openmvg/openmvg_v20r目录下 下载dll:share_noel/sfm/openmvg/openmvg_2_0_dll.zip,并将里面的dll复制到openmvg_v20r/bin目录下 如果硬盘资源紧张,可以将build_r删除了,里面是编译产生的文件,很占空间
使用
官方教程 https://openmvg.readthedocs.io/en/latest/software/SfM/SfM/
在openmvg文件夹下,新建reconstruction文件夹 下载图像数据:share_noel/sfm/openmvg/images.zip https://pan.baidu.com/s/1IsN2Ze2FNts-3v4ZH1m-9A 提取码: mack images.zip放到reconstruction并解压 重建命令,把下列命令中,D:\carlos\my_tools\openmvg_v20r替换成你的…\openmvg_v20r路径,比如你的是D:\code\openmvg\openmvg_v20r\
cd reconstruction
mkdir reconstruction_work
cd reconstruction_work
D:\carlos\my_tools\openmvg_v20r\bin\openMVG_main_SfMInit_ImageListing.exe -i ..\images\ -d D:\carlos\my_tools\openmvg_v20r\share\openMVG\sensor_width_camera_database.txt -o .\matches
D:\carlos\my_tools\openmvg_v20r\bin\openMVG_main_ComputeFeatures.exe -i .\matches\sfm_data.json -o .\matches
D:\carlos\my_tools\openmvg_v20r\bin\openMVG_main_PairGenerator.exe -i .\matches\sfm_data.json -o .\matches\pairs.bin
D:\carlos\my_tools\openmvg_v20r\bin\openMVG_main_ComputeMatches.exe -i .\matches\sfm_data.json -p .\matches\pairs.bin -o .\matches\matches.putative.bin
D:\carlos\my_tools\openmvg_v20r\bin\openMVG_main_GeometricFilter.exe -i .\matches\sfm_data.json -m .\matches\matches.putative.bin -g f -o .\matches\matches.f.bin
D:\carlos\my_tools\openmvg_v20r\bin\openMVG_main_SfM.exe -s INCREMENTAL -i .\matches\sfm_data.json -M .\matches\matches.f.bin -o .\output
D:\carlos\my_tools\openmvg_v20r\bin\openMVG_main_ComputeSfM_DataColor.exe -i .\output\sfm_data.bin -o .\output\sfm_data_colorized.ply
mkdir .\mvs
D:\carlos\my_tools\openmvg_v20r\bin\openMVG_main_openMVG2openMVS.exe -i .\output\sfm_data.bin -d .\mvs\undistortedImages -o .\mvs\scene.mvs
reconstruction_work/output里面是重建结果,cloud_and_poses.ply是生成的稀疏点云,sfm_data_colorized.ply带颜色,下面是cloudcompare可视化sfm_data_colorized.ply。 cloudcompare是个点云处理软件https://blog.csdn.net/qq_41102371/article/details/111713066
稠密重建
见: openmvs编译与使用 https://blog.csdn.net/qq_41102371/article/details/123054992
参考
https://github.com/openMVG/openMVG/blob/develop/BUILD.md https://www.cnblogs.com/YouLing0809/p/6735731.html
完
如有错漏,敬请指正 --------------------------------------------------------------------------------------------诺有缸的高飞鸟202203
|