前言
githup:https://github.com/cdcseacave/openMVS
最近在ubuntu18.04上配置OpenMVS運(yùn)行環(huán)境時(shí)踩了很多坑,在這期間查閱了很多資料和博客,于是想對(duì)安裝過程進(jìn)行總結(jié),方便自己反復(fù)查閱以及分享經(jīng)驗(yàn)避免大家重復(fù)踩坑。
博主是用docker在ubuntu18.04容器中安裝的OpenMVS,已經(jīng)打包成docker的鏡像文件分享給大家。
# 查看ubuntu版本號(hào)
lsb_release -a
安裝前的準(zhǔn)備:安裝cmake、git 、gcc 和g++
apt-get源修改參考
# 更新apt庫(kù),更新軟件列表
sudo apt-get update
# 安裝git,用于從Github上克隆項(xiàng)目到本地
sudo apt-get install git
# 安裝cmake,用于程序的編譯
sudo apt-get install cmake
# 安裝gcc和g++,安裝c和c++編譯器
sudo apt-get install gcc g++
一、安裝第三方庫(kù)
# 建立一個(gè)MVS的文件夾
mkdir MVS && cd MVS
sudo apt-get update -qq && sudo apt-get install -qq
# 安裝圖像格式的相關(guān)庫(kù)
sudo apt-get -y install git cmake libpng-dev libjpeg-dev libtiff-dev libglu1-mesa-dev
1.安裝 Eigen3.4
ubuntu18.4建議源碼eigen3.4及以上版本安裝(不能使用eigen3.2),或者通過git下載:
# 通過git下載Eigen3.4源碼,需要科學(xué)上網(wǎng)
git clone https://gitlab.com/libeigen/eigen.git --branch 3.4
mkdir eigen_build && cd eigen_build
cmake . ../eigen
make && sudo make install
cd ..
2.安裝Boost1.56版本以上
sudo apt-get -y install libboost-iostreams-dev libboost-program-options-dev libboost-system-dev libboost-serialization-dev
3.安裝OpenCV2.4(或者更高版本)
sudo apt-get -y install libopencv-dev
# 查詢OpenCV版本
pkg-config --modversion opencv
# 查詢OpenCV庫(kù)
pkg-config --cflags opencv
# 查詢頭文件目錄
pkg-config --libs opencv
4.安裝CGAL
sudo apt-get -y install libcgal-dev libcgal-qt5-dev
5.安裝VCGLib
# 通過git下載vcglib源碼,需要科學(xué)上網(wǎng)
git clone https://github.com/cdcseacave/VCG.git vcglib
一、安裝以及運(yùn)行OpenMVS
1.安裝OpenMVS的庫(kù)
# 通過git下載OpenMVS源碼,需要科學(xué)上網(wǎng)
git clone https://github.com/electech6/openMVS_comments.git openMVS
mkdir openMVS_build && cd openMVS_build
# /path to vcglib/vcglib"改為自己的vcglib的路徑:Vcglib的父級(jí)目錄/vcglib
cmake . ../openMVS -DCMAKE_BUILD_TYPE=Release -DVCG_ROOT="/path to vcglib/vcglib"
# 生成OpenMVS庫(kù)文件,j4線程數(shù)量,根據(jù)電腦性能選擇合適的數(shù)字
sudo make -j4 && sudo make install
編譯過程中可能出線的問題:
解決方案(參考):
使用git回退vcglib版本,回退到以前提交時(shí)間為2020年對(duì)應(yīng)的歷史版本即可(ubuntu18.04下親測(cè)有效)。
# 進(jìn)入vcglib項(xiàng)目根目錄下,使用命令git log,找到需要返回的commit id,按Q鍵退出
cd vcglib && git log
# 徹底回退到某個(gè)版本,本地的源碼也會(huì)變?yōu)橹付ò姹镜膬?nèi)容
git reset --hard 88f12f212a1645d1fa6416592a434c29e63b57f0
git log后查看歷史提交內(nèi)容:
git reset --hard變?yōu)橹付ò姹镜膬?nèi)容:
安裝編譯完成
2.OpenMVS測(cè)試
測(cè)試數(shù)據(jù)集百度云鏈接,提取碼:4oz5
OpenMVS 可執(zhí)行文件生成在openMVS/openMVS_build/bin/里面
安裝Meshlab
# 安裝依賴并更新
sudo apt --fix-broken install
sudo apt-get update
sudo apt-get upgrade
# 用apt-get安裝meshlab
sudo apt-get install meshlab
安裝完成
稠密重建
# 將數(shù)據(jù)集移動(dòng)到openMVS_build目錄下并重命名為data
mv /root/Downloads/OpenMVS測(cè)試數(shù)據(jù)集 /root/MVS/openMVS_build/data
# 在openMVS_build目錄下執(zhí)行如下命令:-w 設(shè)置的是數(shù)據(jù)的路徑 -i 是輸入的文件名 -o是輸出的文件名
./bin/DensifyPointCloud -w /root/MVS/openMVS_build/data -i scene.mvs -o test_dense.mvs
在數(shù)據(jù)集data目錄下生成test_dense.mvs文件,用Meshlab打開test_dense.mvs:
曲面重建```
./bin/ReconstructMesh -w /root/MVS/openMVS_build/data -i test_dense.mvs -o test_mesh.mvs
在數(shù)據(jù)集data目錄下生成test_mesh.ply文件,用Meshlab打開test_mesh.ply:
網(wǎng)格優(yōu)化
./bin/RefineMesh -w /root/MVS/openMVS_build/data -i test_mesh.mvs -o test_refinemesh.mvs
在數(shù)據(jù)集data目錄下生成test_refinemesh.ply文件,用Meshlab打開test_refinemesh.ply:
紋理貼圖
./bin/TextureMesh -w /root/MVS/openMVS_build/data -i test_refinemesh.mvs -o test_texture.mvs
在數(shù)據(jù)集data目錄下生成test_texture.ply以及test_texture.png文件,用Meshlab打開test_texture.ply:
查看test_texture.png文件:
文章來源:http://www.zghlxwxcb.cn/news/detail-413110.html
總結(jié)
盡可能簡(jiǎn)單、詳細(xì)的介紹OpenMVS的安裝流程以及解決了安裝過程中可能存在的問題。后續(xù)會(huì)根據(jù)自己學(xué)到的知識(shí)結(jié)合個(gè)人理解講解OpenMVS的原理和代碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-413110.html
到了這里,關(guān)于OpenMVS詳細(xì)安裝教程(ubuntu18.04)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!