OpenMVS源码编译

1、最终环境

最终安装的是openMVS-2.4.0版本的,openMVS-2.3.0的TextureMesh在生成obj时有问题。

2、安装 openMVS 2.3.0

2.1 下载安装

python 复制代码
sudo apt install cmake
# 下载v2.3.0
git clone https://github.com/cdcseacave/openMVS.git
cd openMVS/
git submodule update --init --recursive
git checkout v2.3.0
mkdir make
cd make

#Run CMake:wo
cmake ..

2.2 boost错误

报错:

python 复制代码
CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake:141 (find_package):
  Could not find a package configuration file provided by "boost_iostreams"
  (requested version 1.74.0) with any of the following names:
    boost_iostreamsConfig.cmake
    boost_iostreams-config.cmake
  Add the installation prefix of "boost_iostreams" to CMAKE_PREFIX_PATH or
  set "boost_iostreams_DIR" to a directory containing one of the above files.
  If "boost_iostreams" provides a separate development package or SDK, be
  sure it has been installed.
Call Stack (most recent call first):
  /usr/lib/x86_64-linux-gnu/cmake/Boost-1.74.0/BoostConfig.cmake:258 (boost_find_component)
  /usr/share/cmake-3.22/Modules/FindBoost.cmake:594 (find_package)
  CMakeLists.txt:193 (FIND_PACKAGE)
-- Configuring incomplete, errors occurred!

这个错误说明缺少boost库,用下面方法下载安装:

python 复制代码
# 使用curl自动跟随重定向
curl -L -o boost_1_74_0.tar.bz2 "https://sourceforge.net/projects/boost/files/boost/1.74.0/boost_1_74_0.tar.bz2/download"
# 检查文件类型
file boost_1_74_0.tar.bz2

# 解压bz2格式
tar -xjf boost_1_74_0.tar.bz2

cd boost_1_74_0

# 编译安装
./bootstrap.sh --prefix=/usr/local
sudo ./b2 install

2.3 opencv错误

继续编译源码:

python 复制代码
cd ~/code/openmvs/openMVS/make
cmake ..

又报错了:

python 复制代码
CMake Error at CMakeLists.txt:218 (FIND_PACKAGE):
  By not providing "FindOpenCV.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "OpenCV", but
  CMake did not find one.

  Could not find a package configuration file provided by "OpenCV" with any
  of the following names:

    OpenCVConfig.cmake
    opencv-config.cmake

  Add the installation prefix of "OpenCV" to CMAKE_PREFIX_PATH or set
  "OpenCV_DIR" to a directory containing one of the above files.  If "OpenCV"
  provides a separate development package or SDK, be sure it has been
  installed.

解决方法

python 复制代码
sudo apt-get update
sudo apt-get install -y libopencv-dev

报错:

python 复制代码
The following packages have unmet dependencies:
 libtbb2-dev : Conflicts: libtbb-dev but 2021.5.0-7ubuntu2 is to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

解决方法:

python 复制代码
# 安装aptitude(更智能的依赖解析器)
sudo apt-get install -y aptitude

# 使用aptitude安装OpenCV
sudo aptitude install -y libopencv-dev

# aptitude会给出解决方案,通常选择第一个选项

验证安装

python 复制代码
pkg-config --modversion opencv4

2.4 VCG错误

又报错:

python 复制代码
CMake Error at build/Utils.cmake:225 (message):
  VCG required, but not found: Please specify VCG directory using VCG_ROOT
  env.  variable
Call Stack (most recent call first):
  build/Modules/FindVCG.cmake:23 (package_report_not_found)
  libs/MVS/CMakeLists.txt:9 (FIND_PACKAGE)

解决方法:

python 复制代码
宿主机下:
cd ~/colmap/colmap_deployer/code/openmvs/openMVS
git clone https://github.com/cnr-isti-vclab/vcglib.git
# docker中:
# ~/code/openmvs/openMVS# 目录下执行:
export VCG_ROOT=$(pwd)/libs/vcglib

2.5 boost库zstd问题

继续编译:

python 复制代码
cmake ..
#Build:
cmake --build . -j4

#Install OpenMVS library (optional):
cmake --install .

到这里终于不报错了,正常执行了所有安装命令,但是在使用openmvs的时候又出问题了:

python 复制代码
root@9dc64f6c8805:~/code/openmvs/openMVS/make/bin# ~/code/openmvs/openMVS/make/bin/DensifyPointCloud -h
/root/code/openmvs/openMVS/make/bin/DensifyPointCloud: symbol lookup error: /root/code/openmvs/openMVS/make/bin/DensifyPointCloud: undefined symbol: _ZN5boost9iostreams4zstd3runE

这个问题还是boost库安装时出现了隐藏的问题,解决方法如下:

步骤1:卸载现有Boost并重新编译

python 复制代码
bash

# 1. 删除之前安装的Boost
sudo rm -rf /usr/local/lib/libboost*
sudo rm -rf /usr/local/include/boost

# 2. 进入Boost源码目录
cd ~/boost_1_74_0

# 3. 完全清理
./b2 --clean
rm -f b2
rm -f bjam
rm -f project-config.jam
rm -rf bin.v2

# 4. 重新配置,启用zstd支持
./bootstrap.sh --with-libraries=iostreams,program_options,system,filesystem,serialization --prefix=/usr/local

# 5. 编辑project-config.jam,添加zstd支持
cat >> project-config.jam << 'EOF'
using zstd : : <find-static-library>zstd ;
EOF

# 或者使用命令行参数
./b2 install \
    cxxflags="-I/usr/include" \
    linkflags="-L/usr/lib/x86_64-linux-gnu -lzstd" \
    --with-iostreams \
    --with-program_options \
    --with-system \
    --with-filesystem \
    --with-serialization \
    -j$(nproc) \
    --prefix=/usr/local

步骤2:安装zstd开发库

python 复制代码
# 确保zstd库已安装
sudo apt-get update
sudo apt-get install -y libzstd-dev

# 验证zstd安装
ls /usr/include/zstd.h
ls /usr/lib/x86_64-linux-gnu/libzstd*

步骤3:重新编译Boost(完整命令)

python 复制代码
# 一行命令重新编译支持zstd的Boost
cd ~/boost_1_74_0
rm -rf bin.v2 stage
./bootstrap.sh --with-libraries=iostreams,program_options,system,filesystem,serialization
sudo ./b2 install \
    variant=release \
    link=shared \
    runtime-link=shared \
    threading=multi \
    cxxflags="-std=c++14 -I/usr/include" \
    linkflags="-lzstd" \
    --prefix=/usr/local \
    -j$(nproc)

步骤4:验证Boost是否支持zstd

python 复制代码
# 检查Boost iostreams是否包含zstd
nm /usr/local/lib/libboost_iostreams.so.1.74.0 | grep -i zstd

# 或者编译测试程序
cat > test_boost_zstd.cpp << 'EOF'
#include <boost/iostreams/filtering_stream.hpp>
#include <boost/iostreams/filter/zstd.hpp>
#include <iostream>
int main() {
    std::cout << "Boost zstd test: OK" << std::endl;
    return 0;
}
EOF

g++ -o test_boost_zstd test_boost_zstd.cpp \
    -I/usr/local/include \
    -L/usr/local/lib \
    -lboost_iostreams \
    -lzstd
./test_boost_zstd

步骤5:重新编译OpenMVS

python 复制代码
# 清理并重新编译OpenMVS
cd ~/code/openmvs/openMVS/make
rm -rf *

# 重新配置,确保使用正确的Boost
cmake .. \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_CUDA_ARCHITECTURES="86" \
    -DBOOST_ROOT=/usr/local \
    -DBoost_USE_STATIC_LIBS=OFF \
    -DVCG_ROOT="$PWD/../libs/vcglib" \
    -DCMAKE_CXX_FLAGS="-DIO_USE_JPEGXL=0" 

# 编译
cmake --build . -j4

# 测试
./bin/DensifyPointCloud -h

步骤1:卸载现有Boost并重新编译步骤3:重新编译Boost(完整命令)存在重复,可以精简一下,但是这里直接照着做也算是正常了,有机会再精简指令。

2.6 测试openMVS

测试命令:

python 复制代码
# 创建输出目录
mkdir -p /root/code/colmap-test/sh24/openmvs_results

# 转换COLMAP数据为OpenMVS格式
/root/code/openmvs/openMVS/make/bin/InterfaceCOLMAP \
    -i /root/code/colmap-test/sh24/dense \
    -o /root/code/colmap-test/sh24/openmvs_results/scene.mvs \
    --image-folder /root/code/colmap-test/sh24/dense/images \
    --working-folder /root/code/colmap-test/sh24/openmvs_results

# 网格重建
/root/code/openmvs/openMVS/make/bin/ReconstructMesh \
    /root/code/colmap-test/sh24/openmvs_results/scene.mvs \
    -o /root/code/colmap-test/sh24/openmvs_results/scene_mesh.mvs \
    --min-point-distance 2.0 \
    --free-space-support 1 \
    --thickness-factor 10 \
    --decimate 0.5 \
    --close-holes 30 \
    --smooth 2

cd /root/code/colmap-test/sh24/openmvs_results
# 尝试保存为PLY格式
/root/code/openmvs/openMVS/make/bin/TextureMesh \
    -i scene.mvs \
    -m scene_mesh.ply \
    -o scene_textured.ply \
    --export-type ply \
    --resolution-level 1

简化指令:

python 复制代码
mkdir -p ~/code/colmap-test/pm43/openmvs_results
cd ~/code/colmap-test/pm43/openmvs_results

/root/code/openMVS-2.4.0/make/bin/InterfaceCOLMAP \
    -i /root/code/colmap-test/pm43/dense \
    -o scene.mvs \
    --image-folder /root/code/colmap-test/pm43/dense/images \
    --working-folder .


/root/code/openMVS-2.4.0/make/bin/ReconstructMesh \
    scene.mvs \
    -o scene_mesh.ply \
    --min-point-distance 2.0 \
    --free-space-support 1 \
    --thickness-factor 10 \
    --decimate 0.5 \
    --close-holes 30 \
    --smooth 2

/root/code/openMVS-2.4.0/make/bin/TextureMesh \
    -i scene.mvs \
    -m scene_mesh.ply \
    -o scene_textured.ply \
    --export-type ply \
    --resolution-level 1

2.7 TextureMesh生成obj报错

注意用下面的命令会失败,可能是2.3.0这个版本的bug

python 复制代码
/root/code/openMVS-2.4.0/make/bin/TextureMesh \
    -i /root/code/colmap-test/sh24/openmvs_results/scene.mvs \
    -m /root/code/colmap-test/sh24/openmvs_results/scene_mesh.ply \
    -o /root/code/colmap-test/sh24/openmvs_results/scene_textured.obj \
    --export-type obj \
    --resolution-level 1

3、卸载2.3.0安装最新OpenMVS(失败可忽略)

python 复制代码
# 安装nanoflann
sudo apt-get update
sudo apt-get install -y libnanoflann-dev

报JPEGXL相关错误:

jpegxl不是必要的库,可以像图中一样注释掉它

继续编译,又报错如下:

python 复制代码
CMake Error at build/Utils.cmake:223 (message):
  VCG required, but not found: Please specify VCG directory using VCG_ROOT
  env.  variable
Call Stack (most recent call first):
  build/Modules/FindVCG.cmake:23 (package_report_not_found)
  libs/MVS/CMakeLists.txt:9 (FIND_PACKAGE)

解决方法:

python 复制代码
宿主机下:
cd ~/colmap/colmap_deployer/code/openmvs/openMVS
git clone https://github.com/cnr-isti-vclab/vcglib.git
# docker中:
# ~/code/openmvs/openMVS# 目录下执行:
export VCG_ROOT=$(pwd)/libs/vcglib

安装命令,注意结合自己的显卡指定CUDA_ARCHITECTURES否则会报cuda错误:

python 复制代码
cmake .. \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_CUDA_ARCHITECTURES="86" \
    -DBOOST_ROOT=/usr/local \
    -DBoost_USE_STATIC_LIBS=OFF \
    -DVCG_ROOT="$PWD/../libs/vcglib" \
    -DCMAKE_CXX_FLAGS="-DIO_USE_JPEGXL=0" 

# 编译
cmake --build . -j4

# 测试
./bin/DensifyPointCloud -h

编译的时候报错了:

python 复制代码
/root/code/openmvs/openMVS/libs/Common/Types.inl:3110:36: error: 'IMWRITE_JPEGXL_QUALITY' is not a member of 'cv'; did you mean 'IMWRITE_JPEG_QUALITY'?
/root/code/openmvs/openMVS/libs/Common/OBB.inl:483:58: error: 'SearchParameters' is not a member of 'nanoflann'; did you mean 'SearchParams'?

原因和解决方法:

opencv和nanoflann版本不对

安装4.8.0版本opencv

python 复制代码
# 安装OpenCV 4.8+(支持JPEG XL)
sudo apt-get remove -y libopencv-dev
sudo apt-get autoremove -y

# 从源码编译OpenCV 4.8.0
cd ~
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.8.0
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install
sudo ldconfig

4、 用自带包管理工具(失败可跳过)

4.1 结果

失败了,在容器中很多库下载不下来,也会出现很多错误,干脆放弃用它,直接需要什么装什么,另外据说它下载的东西比较多也会更占空间。

4.2 基本环境安装

python 复制代码
# 1. 安装curl等基础工具
sudo apt update
sudo apt install -y curl zip unzip tar

# 2. 安装编译工具
sudo apt install -y build-essential cmake git pkg-config

# 3. 安装可选的开发工具
sudo apt install -y autoconf automake libtool

# 4. 验证安装
curl --version
cmake --version
g++ --version

4.3 初始化vcpkg

python 复制代码
git clone https://github.com/microsoft/vcpkg.git
cd ~/code/openmvs/vcpkg
# 现在应该可以正常初始化vcpkg了
./bootstrap-vcpkg.sh

export VCPKG_ROOT=$(pwd)
export PATH=$PATH:$VCPKG_ROOT

# 永久添加到bashrc
echo 'export VCPKG_ROOT="'$VCPKG_ROOT'"' >> ~/.bashrc
echo 'export PATH="$PATH:'$VCPKG_ROOT'"' >> ~/.bashrc
source ~/.bashrc

4.4 安装OpenMVS依赖

python 复制代码
# 安装基础依赖(不带CUDA先测试)
./vcpkg install \
  eigen3 \
  opencv[core,contrib] \
  cgal \
  boost \
  ceres \
  glfw3 \
  glew

# 如果需要CUDA,但要注意版本兼容
# OpenMVS可能需要特定CUDA版本,我们先测试无CUDA版本
vcpkg install openmvs[cuda]

继续报错,即使手动下载好gperf-3.3.tar.gz,还是自己安装吧,缺什么装什么:

python 复制代码
error: building gperf:x64-linux failed with: BUILD_FAILED
See https://learn.microsoft.com/vcpkg/troubleshoot/build-failures?WT.mc_id=vcpkg_inproduct_cli for more information.
Elapsed time to handle gperf:x64-linux: 606 ms
Please ensure you're using the latest port files with `git pull` and `vcpkg update`.
Then check for known issues at:
  https://github.com/microsoft/vcpkg/issues?q=is%3Aissue+is%3Aopen+in%3Atitle+gperf
You can submit a new issue at:
  https://github.com/microsoft/vcpkg/issues/new?title=%5Bgperf%5D%20build%20error%20on%20x64-linux&body=Copy%20issue%20body%20from%20%2Froot%2Fcode%2Fopenmvs%2Fvcpkg%2Finstalled%2Fvcpkg%2Fissue_body.md

5、重新创建容器安装openMVS-2.4.0:(成功)

5.1 源码编译boost

注意要带zstd编译项,否则报错:

python 复制代码
# 使用curl自动跟随重定向
curl -L -o boost_1_74_0.tar.bz2 "https://sourceforge.net/projects/boost/files/boost/1.74.0/boost_1_74_0.tar.bz2/download"
# 检查文件类型
file boost_1_74_0.tar.bz2
# 解压bz2格式
tar -xjf boost_1_74_0.tar.bz2
cd boost_1_74_0
# 配置启用zstd
./bootstrap.sh --with-libraries=iostreams 
./b2 -j$(nproc) --with-iostreams cxxflags="-I/usr/include" linkflags="-lzstd"
sudo ./b2 install

# 3. 更新库缓存
sudo ldconfig

sudo apt install -y libnanoflann-dev

通过下面方法解决:

sudo apt-get install -y aptitude

5.2 源码编译libjxl

python 复制代码
# 1. 安装编译依赖
sudo apt update
sudo apt install -y \
    git cmake build-essential \
    libbrotli-dev libgif-dev libjpeg-dev libopenexr-dev \
    libpng-dev libwebp-dev

# 2. 克隆libjxl源码
cd ~
git clone https://github.com/libjxl/libjxl.git --recursive
cd libjxl

# 3. 配置和编译
mkdir build && cd build
cmake .. \
    -DCMAKE_BUILD_TYPE=Release \
    -DBUILD_TESTING=OFF \
    -DJPEGXL_ENABLE_BENCHMARK=OFF \
    -DJPEGXL_ENABLE_EXAMPLES=OFF \
    -DJPEGXL_ENABLE_PLUGINS=OFF \
    -DJPEGXL_ENABLE_VIEWERS=OFF \
    -DJPEGXL_WARNINGS_AS_ERRORS=OFF

# 4. 编译和安装
make -j$(nproc)
sudo make install
sudo ldconfig

# 5. 验证安装
pkg-config --modname libjxl

5.3 配置nanoflann

编译的时候除了要让编译器能找到cmake文件,还需要加载到导出目录中,如果不配置也会报错,在cmake的时候也要对应配置:

python 复制代码
# 删除有问题的配置文件
rm /root/code/nanoflann/nanoflannConfig.cmake

# 创建正确的配置文件
cat > /root/code/nanoflann/nanoflannConfig.cmake << 'EOF'
# nanoflann CMake configuration
cmake_minimum_required(VERSION 3.10)

# nanoflann is a header-only library
# Create an imported interface target
if(NOT TARGET nanoflann::nanoflann)
    add_library(nanoflann::nanoflann INTERFACE IMPORTED)
    set_target_properties(nanoflann::nanoflann PROPERTIES
        INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/include"
    )
endif()

# Set variables for compatibility
set(nanoflann_FOUND TRUE)
set(nanoflann_INCLUDE_DIRS "${CMAKE_CURRENT_LIST_DIR}/include")
set(nanoflann_LIBRARIES nanoflann::nanoflann)

# Provide a function to check if nanoflann is available
function(nanoflann_check)
    if(NOT EXISTS "${CMAKE_CURRENT_LIST_DIR}/include/nanoflann.hpp")
        message(FATAL_ERROR "nanoflann.hpp not found in ${CMAKE_CURRENT_LIST_DIR}/include")
    endif()
    message(STATUS "Found nanoflann: ${CMAKE_CURRENT_LIST_DIR}/include")
endfunction()
EOF

5.4 源码编译opencv4.13.0

最终用的opencv4.13.0,否则没有IMWRITE_JPEGXL_QUALITY会报错,需要吧4.8.0卸载重装

python 复制代码
原因和解决方法:
opencv和nanoflann版本不对
安装4.13.0版本opencv

# 安装OpenCV 4.13.0(支持JPEG XL)
sudo apt-get remove -y libopencv-dev
sudo apt-get autoremove -y

# 从源码编译OpenCV 4.13.0
cd ~
git clone https://github.com/opencv/opencv.git
cd opencv
git checkout 4.13.0
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install
sudo ldconfig

5.5 源码安装CGAL6.0.2

下载:https://github.com/CGAL/cgal/releases/tag/v6.0.2下源码:cgal-6.0.2.tar.gz

python 复制代码
tar -xzvf cgal-6.0.2.tar.gz 
cd cgal-6.0.2/
cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local
make -j$(nproc)
sudo make install

5.6 升级cuda toolkit

报错:

python 复制代码
root@9e7078c3869a:~/code/openmvs/openMVS/make# make -j$(nproc)
[  1%] Building CXX object libs/Common/CMakeFiles/Common.dir/cmake_pch.hxx.gch
[  2%] Building CXX object libs/Common/CMakeFiles/Common.dir/Common.cpp.o
[  6%] Building CXX object libs/Common/CMakeFiles/Common.dir/ConfigTable.cpp.o
[  6%] Building CXX object libs/Common/CMakeFiles/Common.dir/Log.cpp.o
[  6%] Building CXX object libs/Common/CMakeFiles/Common.dir/EventQueue.cpp.o
[  6%] Building CXX object libs/Common/CMakeFiles/Common.dir/SML.cpp.o
[  7%] Building CXX object libs/Common/CMakeFiles/Common.dir/Timer.cpp.o
[ 10%] Building CXX object libs/Common/CMakeFiles/Common.dir/Types.cpp.o
[ 11%] Building CXX object libs/Common/CMakeFiles/Common.dir/Util.cpp.o
[ 11%] Building CXX object libs/Common/CMakeFiles/Common.dir/UtilCUDA.cpp.o
[ 12%] Linking CUDA device code CMakeFiles/Common.dir/cmake_device_link.o
nvlink fatal   : Could not open input file '/usr/lib/x86_64-linux-gnu/libpthread.a'
make[2]: *** [libs/Common/CMakeFiles/Common.dir/build.make:259: libs/Common/CMakeFiles/Common.dir/cmake_device_link.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:427: libs/Common/CMakeFiles/Common.dir/all] Error 2
make: *** [Makefile:146: all] Error 2

方法之一就是升级cuda toolkit,我的 nvcc cuda 版本是 11.5,在网上查找问题的时候发现有人建议cuda要11.7以上,我安装了cuda toolkit 11.8
原文链接

5.6.1 卸载cuda11.5

python 复制代码
# 卸载核心CUDA包和gcc/g++-10
apt-get purge -y \
    nvidia-cuda-toolkit \
    nvidia-cuda-toolkit-gcc \
    gcc-10 g++-10

# 若有其他关联的CUDA依赖(如cuda-*),也可一并卸载(可选)
apt-get purge -y cuda* nvidia-*
apt-get autoremove -y
apt-get clean

5.6.2 装11.8

python 复制代码
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-keyring_1.0-1_all.deb
dpkg -i cuda-keyring_1.0-1_all.deb

apt-get update && \
    apt-get install -y --no-install-recommends \
    cuda-toolkit-11-8=11.8.0-1 \
    libcudnn8=8.6.0.163-1+cuda11.8 \
    libcudnn8-dev=8.6.0.163-1+cuda11.8 

如果nvcc --version失败,按照下面方法处理:

python 复制代码
# 编辑bashrc文件
vim ~/.bashrc
# 在文件末尾添加以下两行内容
export PATH=/usr/local/cuda-11.8/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
# 保存退出(vim中按Esc,输入:wq回车)

# 让配置立即生效
source ~/.bashrc
# 刷新动态库缓存
ldconfig

# 验证
nvcc --version

5.7 安装gcc/g++

报错:

python 复制代码
root@e741e0c718d3:~/code/boost_1_74_0# ./bootstrap.sh --prefix=/usr/local
Building Boost.Build engine with toolset gcc... 
Failed to build Boost.Build build engine
Consult 'bootstrap.log' for more details

解决:

python 复制代码
apt-get install gcc-10 g++-10
```python

## 5.8 配置vcglib
从http://vcglib.net/下载http://github.com/cnr-isti-vclab/vcglib/下的库文件
将vcglib拷贝到openMVS/libs文件夹下

# 5.8 安装
```python
cmake ..     -DCMAKE_BUILD_TYPE=Release     -DCMAKE_CUDA_ARCHITECTURES="86"     -DBOOST_ROOT=/usr/local     -DBoost_USE_STATIC_LIBS=OFF     -DVCG_ROOT="$PWD/../libs/vcglib" -Dnanoflann_DIR=/root/code/nanoflann

cmake --build . -j4
cmake --install .

5.9 测试

python 复制代码
# 普通指令测试:
./bin/DensifyPointCloud -h
# 接colmap结果测试
/root/code/bdm_main/SuperBuild/install/bin/OpenMVS/DensifyPointCloud "/task_2/opensfm/undistorted/openmvs/scene.mvs" --resolution-level 3 --dense-config-file "/task_2/opensfm/undistorted/openmvs/Densify.ini" --max-resolution 5280 --max-threads 78 --number-views-fuse 2 --sub-resolution-levels 2 --archive-type 3 -w "/task_2/opensfm/undistorted/openmvs/depthmaps" -v 0 --cuda-device -1

6 其它

python 复制代码
https://blog.csdn.net/dongmen2345/article/details/112593749
https://blog.csdn.net/qq_17732497/article/details/105943788
realitycapture
Pix4D    
https://github.com/ethz-asl/aerial_mapper
相关推荐
有泽改之_2 小时前
ssh命令使用
linux·运维·ssh
玩大数据的龙威3 小时前
【乱占耕地建房】—试点工作平台自动化填报系统
运维·自动化
JoyCong19983 小时前
高效远程协作指南:基于ToDesk的六大应用场景详解
运维·服务器·远程工作·远程操作
三不原则4 小时前
实战:混沌工程入门,模拟服务器宕机的故障演练
运维·kubernetes·chaos mesh
cws2004015 小时前
MFA双因素用户使用手册
运维·windows·网络安全·github·邮件·邮箱
断水客6 小时前
搭建ARM LINUX 内核 QEMU 仿真调试环境
linux·运维·arm开发·嵌入式
fantasy5_56 小时前
深入理解 Linux 动静态库:制作、原理与加载机制
linux·运维·restful
weixin_307779136 小时前
面向通用矩阵乘法(GEMM)负载的GPU建模方法:原理、实现与多场景应用价值
运维·人工智能·线性代数·矩阵·gpu算力
不爱吃糖的程序媛6 小时前
OpenHarmony仓颉文档:全场景应用开发指南
运维·服务器