ubuntu16.04 安装COLMAP具体步骤以及遇到的bug

ubuntu16.04 安装COLMAP具体步骤以及遇到的bug

准备工作

(1)安装eigen 3.3.7 下载地址:https://gitlab.com/libeigen/eigen/-/releases eigen官网
(2)安装Ceres 1.14.0 下载地址: ceres官网

安装eigen 3.3.7

(1)到官网下载对应版本的压缩包(版本一定不要选错,不然后面各种编译的时候回出现错误),并解压。 代码片.

// 解压
tar -zxvf eigen-3.3.7.tar.gz
// 编译安装3.3.7
cd eigen-3.3.7

mkdir build

cd build

cmake ..

sudo make

sudo make install

复制Eigen库到usr/local/include中

sudo cp -r usr/local/include/eigen3/Eigen usr/local/include

安装Ceres 1.14.0

eigen 3.3.7与ceres 1.14.0版本一定要对应,不然后续会出现版本不匹配造成的编译错误。因此在这选择正确的对应点版本减少后续的麻烦。

//下载ceres-solver-1.14.0
wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
//解压
tar -zxvf ceres-solver-1.14.0.tar.gz
// 编译Ceres 1.14.0
cd ceres-solver-1.14.0
 
sudo mkdir build
 
cd build
 
sudo cmake ..
 
sudo make 
//安装
sudo make install 

安装colmap

1.获取Colmap源代码

//下载Colmap源代码
git clone https://github.com/colmap/colmap

2.安装依赖库

 git \
    cmake \
    build-essential \
    libboost-program-options-dev \
    libboost-filesystem-dev \
    libboost-graph-dev \
    libboost-regex-dev \
    libboost-system-dev \
    libboost-test-dev \
    libeigen3-dev \
    libsuitesparse-dev \
    libfreeimage-dev \
    libgoogle-glog-dev \
    libgflags-dev \
    libglew-dev \
    qtbase5-dev \
    libqt5opengl5-dev \
    libcgal-dev

在Ubuntu 16.04/18.04下CGAL的CMake配置脚本被破坏,你必须安装CGAL Qt5包:

sudo apt-get install libcgal-qt5-dev

3.安装

cd colmap
 
git checkout dev
 
mkdir build
 
cd build
 
cmake ..
 
make
 
sudo make install

4.运行

colmap -h
colmap gui

遇到的问题

1.问题描述ubuntu16.04 安装COLMAP具体步骤以及遇到的bug_第1张图片
原因:
eigen版本与ceres版本不匹配
解决办法:
更换本文所要求的版本,在更改之前应先删除原有版本
(1)查看Eigen版本号

cat /usr/include/eigen3/Eigen/src/Core/util/Macros.h

Eigen库版本的定义在 /usr/include/eigen3/Eigen/src/Core/util/Macros.h 里面
或者

cat /usr/local/include/eigen3/Eigen/src/Core/util/Macros.h

(2)查看Ceres版本:

sudo cat /usr/local/include/ceres/version.h 

Ceres库版本的定义在 /usr/local/include/ceres/version.h 里面
(3)删掉一些旧版本
ceres的文件,否则直接安装清理不掉,依然会报错
①/usr/local/include中的ceres文件夹直接删掉
②/usr/local/lib下的libceres.a
③/usr/local/lib/cmake/Ceres 下有关ceres的全都删掉
④/usr/local/share/Ceres 文件夹删掉
上面四点中,若是没有的话就不必删了
如果怕还有残余,则在终端:locate ceres 然后 locate Ceres 主要看usr文件夹下是否有关于ceres的,若有,必须删除掉.

//查看是否残余
locate ceres 
locate Ceres
//删除
sudo rm -r /usr/local/lib/cmake/Ceres
sudo rm -rf /usr/local/include/ceres /usr/local/lib/libceres.a
sudo rm -r /usr/local/share/Ceres

删除Eigen旧版本与删除ceres旧版本同样的步骤

//查看是否残余
locate Eigen
//删除
sudo rm -r 文件夹
sudo rm -rf 文件

参考:
https://blog.csdn.net/X_kh_2001/article/details/82591978

你可能感兴趣的:(三维重建,COLMAP,ubuntu)